PythonScript নীতি রানটাইম ত্রুটি সমস্যা সমাধান

আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন
.info- তে যান।

স্ক্রিপ্ট মূল্যায়ন ব্যর্থ হয়েছে

ত্রুটি কোড

steps.script.ScriptEvaluationFailed

ত্রুটিপূর্ণ প্রতিক্রিয়া বডি

{
    "fault": {
        "faultstring": "Evaluation of script pythonscript_name (py) failed with reason: error_type: error_description"",
        "detail": {
            "errorcode": "steps.script.ScriptEvaluationFailed"
        }
    }
}

সম্ভাব্য কারণসমূহ

পাইথন স্ক্রিপ্ট পলিসি বিভিন্ন ধরনের ScriptEvaluationFailed এরর দেখাতে পারে। নিচের অংশে এই এররগুলোর কয়েকটি বর্ণনা করা হয়েছে।

নাম ত্রুটি

পাইথন স্ক্রিপ্ট কোডে কোনো ভেরিয়েবলকে সংজ্ঞায়িত না করে রেফারেন্স করা হলে বা তার উপর কোনো অপারেশন চালানো হলে, আপনি Name error পাবেন।

ত্রুটিপূর্ণ প্রতিক্রিয়া বডি

{
    "fault": {
        "faultstring": "Evaluation of script pythonscript_name (py) failed with reason: "NameError: variable_name is not defined"",
        "detail": {
            "errorcode": "steps.script.ScriptEvaluationFailed"
        }
    }
}

ত্রুটির প্রতিক্রিয়ার উদাহরণ বডি

{
    "fault": {
        "faultstring": "Evaluation of script myscript.py (py) failed with reason: "NameError: 'num3' is not defined"",
        "detail": {
            "errorcode": "steps.script.ScriptEvaluationFailed"
        }
    }
}

রোগ নির্ণয়

  1. এরর রেসপন্সের faultstring এলিমেন্ট থেকে PythonScript পলিসি এবং অনির্ধারিত ভ্যারিয়েবলের নামটি শনাক্ত করুন। উদাহরণস্বরূপ, নিচের faultstring-এ, PythonScript-এর নামটি হলো myscript.py এবং অনির্ধারিত ভ্যারিয়েবলের নামটি হলো num3 :

    "faultstring": "Evaluation of script myscript.py (py) failed with reason: "NameError: 'num3' is not defined""
  2. উপরের ধাপ #১-এ উল্লিখিত PythonScript সোর্স ফাইলটি পরীক্ষা করুন এবং যাচাই করুন যে সেখানে উল্লিখিত অনির্ধারিত ভেরিয়েবলটি রেফারেন্স করা হচ্ছে কিনা। উদাহরণস্বরূপ, নিম্নলিখিত PythonScript কোডটি num3 নামক অনির্ধারিত ভেরিয়েবলটিকে রেফারেন্স করে, যা faultstring-এর সাথে মিলে যায়:

    num1 = 1.5
    num2 = 6.3
    sum = float(num1) + float(num3)
    print('The sum of {0} and {1} is {2}'.format(num1, num3 sum))
  3. পাইথন স্ক্রিপ্ট কোডের মধ্যে নির্দিষ্ট ভেরিয়েবলটি সংজ্ঞায়িত করা আছে কিনা তা পরীক্ষা করুন। যদি ভেরিয়েবলটি সংজ্ঞায়িত না থাকে, তাহলে সেটাই ত্রুটির কারণ।

    উপরে দেখানো উদাহরণ স্ক্রিপ্টটিতে, num3 ভেরিয়েবলটি অসংজ্ঞায়িত। তাই, আপনি নিচের এররটি পাবেন:

    "faultstring": "Evaluation of script myscript.py (py) failed with reason: "NameError: 'num3' is not defined""

সমাধান

পাইথন স্ক্রিপ্ট কোডে উল্লেখিত সমস্ত ভেরিয়েবল সঠিকভাবে সংজ্ঞায়িত করা হয়েছে কিনা তা নিশ্চিত করুন।

উপরে দেখানো উদাহরণ পাইথন স্ক্রিপ্টটির সমস্যা সমাধান করতে, num3 ভেরিয়েবলটি ব্যবহার করার আগে সংজ্ঞায়িত করুন। উদাহরণস্বরূপ:

num1 = 1.5
num2 = 6.3
num3 = 8.7
sum = float(num1) + float(num3)
print('The sum of {0} and {1} is {2}'.format(num1, num3, sum))

শূন্যবিভাগ ত্রুটি

ভাগ বা মডুলো অপারেশনের দ্বিতীয় আর্গুমেন্ট শূন্য হলে এই ত্রুটিটি দেখা দেয়।

ত্রুটিপূর্ণ প্রতিক্রিয়া বডি

{
    "fault": {
        "faultstring": "Evaluation of script pythonscript_name (py) failed with reason: "ZeroDivisionError: reason_for_error"",
        "detail": {
            "errorcode": "steps.script.ScriptEvaluationFailed"
        }
    }
}

ত্রুটির প্রতিক্রিয়ার উদাহরণ বডি

{
    "fault": {
        "faultstring": "Evaluation of script myscript.py (py) failed with reason: "ZeroDivisionError: integer division or modulo by zero"",
        "detail": {
            "errorcode": "steps.script.ScriptEvaluationFailed"
        }
    }
}

রোগ নির্ণয়

  1. এরর রেসপন্সের `faultstring` এলিমেন্ট থেকে PythonScript পলিসির নাম এবং ব্যর্থতার কারণ শনাক্ত করুন। উদাহরণস্বরূপ, নিচের `faultstring`-এ, PythonScript-এর নাম হলো myscript.py এবং ব্যর্থতার কারণ হলো integer division or modulo by zero :

    "faultstring": "Evaluation of script myscript.py (py) failed with reason: "ZeroDivisionError: integer division or modulo by zero""
  2. উপরে ধাপ #১-এ চিহ্নিত PythonScript সোর্স ফাইলটি পরীক্ষা করুন এবং যাচাই করুন যে সেখানে শূন্য দ্বারা কোনো ভাগ বা মডুলাস অপারেশন আছে কিনা। উদাহরণস্বরূপ, নিম্নলিখিত PythonScript কোডটি শূন্য দ্বারা ভাগ করে, যা faultstring-এর সাথে মিলে যায়:

    a = 0
    b = 5
    c = b/a
    print c

    উপরে দেখানো উদাহরণ স্ক্রিপ্টটিতে, ভাগ অপারেশনের দ্বিতীয় আর্গুমেন্টটি শূন্য হওয়ায়, আপনি নিম্নলিখিত ত্রুটিটি পাবেন:

    "faultstring": "Evaluation of script myscript.py (py) failed with reason: "ZeroDivisionError: integer division or modulo by zero""

সমাধান

পাইথন স্ক্রিপ্টে ভাগ বা মডুলো অপারেশনের দ্বিতীয় আর্গুমেন্টটি যেন অশূন্য হয়, তা নিশ্চিত করুন।

উপরে দেখানো উদাহরণ পাইথন স্ক্রিপ্টটির সমস্যা সমাধান করতে, ভাগ বা মডুলো অপারেশনের দ্বিতীয় আর্গুমেন্ট হিসেবে একটি অশূন্য মান ব্যবহার করুন। উদাহরণস্বরূপ:

a = 3
b = 5
c = b/a
print c

আরও তথ্য

উপরে বর্ণিত কারণগুলো ছাড়াও steps.script.ScriptEvaluationFailed ত্রুটিটির আরও অনেক সম্ভাব্য কারণ রয়েছে। আরও তথ্যের জন্য অনুগ্রহ করে অফিসিয়াল পাইথন ডকুমেন্টেশন দেখুন।