Anda sedang melihat dokumentasi Apigee dan Apigee Hybrid.
Lihat
dokumentasi Apigee Edge.
ScriptEvaluationFailed
Kode error
steps.script.ScriptEvaluationFailed
Isi respons error
{ "fault": { "faultstring": "Evaluation of script pythonscript_name (py) failed with reason: error_type: error_description"", "detail": { "errorcode": "steps.script.ScriptEvaluationFailed" } } }
Kemungkinan penyebab
Kebijakan Python Script dapat
menampilkan beberapa jenis error ScriptEvaluationFailed
yang berbeda. Bagian di bawah ini menjelaskan beberapa error tersebut.
NameError
Jika ada variabel dalam kode PythonScript yang direferensikan atau dioperasikan tanpa ditentukan, Anda akan mendapatkan error Name.
Isi respons error
{ "fault": { "faultstring": "Evaluation of script pythonscript_name (py) failed with reason: "NameError: variable_name is not defined"", "detail": { "errorcode": "steps.script.ScriptEvaluationFailed" } } }
Contoh isi respons error
{ "fault": { "faultstring": "Evaluation of script myscript.py (py) failed with reason: "NameError: 'num3' is not defined"", "detail": { "errorcode": "steps.script.ScriptEvaluationFailed" } } }
Diagnosis
Identifikasi kebijakan PythonScript dan nama variabel yang tidak ditentukan dari elemen faultstring respons error. Misalnya, dalam faultstring berikut, nama PythonScript adalah
myscript.py
dan nama variabel yang tidak ditentukan adalah num3:"faultstring": "Evaluation of script myscript.py (py) failed with reason: "NameError: 'num3' is not defined""
Periksa file sumber PythonScript yang diidentifikasi pada langkah #1 di atas dan verifikasi apakah variabel yang tidak ditentukan yang diidentifikasi pada langkah #1 di atas direferensikan. Misalnya, kode PythonScript berikut merujuk ke variabel num3 yang tidak ditentukan, yang cocok dengan 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))
Periksa apakah variabel tertentu telah didefinisikan dalam kode PythonScript. Jika variabel tidak ditentukan, itulah penyebab error.
Dalam contoh skrip yang ditampilkan di atas, variabel num3 tidak terdefinisi. Oleh karena itu, Anda akan mendapatkan error di bawah ini:
"faultstring": "Evaluation of script myscript.py (py) failed with reason: "NameError: 'num3' is not defined""
Resolusi
Pastikan semua variabel yang direferensikan dalam kode PythonScript didefinisikan dengan benar.
Untuk memperbaiki masalah dengan contoh PythonScript yang ditampilkan di atas, tentukan variabel num3 sebelum menggunakannya. Contoh:
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))
ZeroDivisionError
Error ini muncul jika argumen kedua dari operasi pembagian atau modulo adalah nol.
Isi respons error
{ "fault": { "faultstring": "Evaluation of script pythonscript_name (py) failed with reason: "ZeroDivisionError: reason_for_error"", "detail": { "errorcode": "steps.script.ScriptEvaluationFailed" } } }
Contoh isi respons error
{ "fault": { "faultstring": "Evaluation of script myscript.py (py) failed with reason: "ZeroDivisionError: integer division or modulo by zero"", "detail": { "errorcode": "steps.script.ScriptEvaluationFailed" } } }
Diagnosis
Identifikasi nama kebijakan PythonScript dan alasan kegagalan dari elemen faultstring respons error. Misalnya, dalam faultstring berikut, nama PythonScript adalah
myscript.py
dan alasan kegagalan adalahinteger division or modulo by zero
:"faultstring": "Evaluation of script myscript.py (py) failed with reason: "ZeroDivisionError: integer division or modulo by zero""
Periksa file sumber PythonScript yang diidentifikasi pada langkah #1 di atas dan verifikasi apakah ada pembagian atau operasi modulus dengan nol. Misalnya, kode PythonScript berikut melakukan pembagian dengan nol, yang cocok dengan apa yang ada di faultstring:
a = 0 b = 5 c = b/a print c
Pada contoh skrip yang ditampilkan di atas, karena argumen kedua dari operasi pembagian adalah nol, Anda mendapatkan error berikut:
"faultstring": "Evaluation of script myscript.py (py) failed with reason: "ZeroDivisionError: integer division or modulo by zero""
Resolusi
Pastikan argumen kedua dari operasi pembagian atau modulo bukan nol di PythonScript.
Untuk memperbaiki masalah dengan contoh PythonScript yang ditampilkan di atas, gunakan nilai selain nol sebagai argumen kedua dari operasi pembagian atau modulo. Contoh:
a = 3 b = 5 c = b/a print c
Informasi Selengkapnya
Ada banyak kemungkinan penyebab error steps.script.ScriptEvaluationFailed
lainnya selain yang dijelaskan di atas. Lihat dokumentasi Python resmi untuk mendapatkan informasi selengkapnya.