Sie sehen die Dokumentation zu Apigee Edge.
Gehen Sie zur
Apigee X-Dokumentation. Weitere Informationen
ScriptEvaluationFailed
Fehlercode
steps.script.ScriptEvaluationFailed
Fehlerantworttext
{ "fault": { "faultstring": "Evaluation of script pythonscript_name (py) failed with reason: error_type: error_description"", "detail": { "errorcode": "steps.script.ScriptEvaluationFailed" } } }
Mögliche Ursachen
Die Richtlinie Python Script kann verschiedene Typen von ScriptEvaluationFailed
-Fehlern enthalten. In den folgenden Abschnitten werden einige dieser Fehler beschrieben.
NameError
Enthält der PythonScript-Code eine Variable, auf die verwiesen oder die verwendet wird, ohne definiert zu sein, wird der Fehler "Name" ausgegeben.
Fehlerantworttext
{ "fault": { "faultstring": "Evaluation of script pythonscript_name (py) failed with reason: "NameError: variable_name is not defined"", "detail": { "errorcode": "steps.script.ScriptEvaluationFailed" } } }
Beispieltext für eine Fehlerantwort
{ "fault": { "faultstring": "Evaluation of script myscript.py (py) failed with reason: "NameError: 'num3' is not defined"", "detail": { "errorcode": "steps.script.ScriptEvaluationFailed" } } }
Diagnose
Ermitteln Sie die PythonScript-Richtlinie und den nicht definierten Variablennamen aus dem Errorstring-Element der Fehlerantwort. Im folgenden Fehlerstring lautet der PythonScript-Name beispielsweise
myscript.py
und der nicht definierte Variablenname num3:"faultstring": "Evaluation of script myscript.py (py) failed with reason: "NameError: 'num3' is not defined""
Überprüfen Sie die in Schritt 1 ermittelte PythonScript-Quelldatei und prüfen Sie, ob auf die in Schritt 1 identifizierte nicht definierte Variable verwiesen wird. Der folgende PythonScript-Code verweist beispielsweise auf die nicht definierte Variable num3, die mit dem Fehlerstring übereinstimmt:
num1 = 1.5 num2 = 6.3 sum = float(num1) + float(num3) print('The sum of {0} and {1} is {2}'.format(num1, num3 sum))
Prüfen Sie, ob die jeweilige Variable im PythonScript-Code definiert ist. Wenn die Variable nicht definiert ist, ist dies die Ursache des Fehlers.
Im oben aufgeführten Beispielskript ist die Variable num3 nicht definiert. Daher wird folgender Fehler ausgegeben:
"faultstring": "Evaluation of script myscript.py (py) failed with reason: "NameError: 'num3' is not defined""
Lösung
Achten Sie darauf, dass alle Variablen, auf die im PythonScript-Code verwiesen wird, ordnungsgemäß definiert sind.
Um das Problem mit dem oben gezeigten PythonScript-Beispiel zu beheben, definieren Sie die Variable num3, bevor Sie sie verwenden. Beispiel:
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
Dieser Fehler tritt auf, wenn das zweite Argument eines Divisions- oder Modulo-Vorgangs null ist.
Fehlerantworttext
{ "fault": { "faultstring": "Evaluation of script pythonscript_name (py) failed with reason: "ZeroDivisionError: reason_for_error"", "detail": { "errorcode": "steps.script.ScriptEvaluationFailed" } } }
Beispieltext für eine Fehlerantwort
{ "fault": { "faultstring": "Evaluation of script myscript.py (py) failed with reason: "ZeroDivisionError: integer division or modulo by zero"", "detail": { "errorcode": "steps.script.ScriptEvaluationFailed" } } }
Diagnose
Identifizieren Sie den PythonScript-Richtliniennamen und den Grund für das Fehlschlagen aus dem Errorstring-Element der Fehlerantwort. Im folgenden Fehlerstring lautet der PythonScript-Name beispielsweise
myscript.py
und der Grund für den Fehler istinteger division or modulo by zero
:"faultstring": "Evaluation of script myscript.py (py) failed with reason: "ZeroDivisionError: integer division or modulo by zero""
Untersuchen Sie die in Schritt 1 identifizierte PythonScript-Quelldatei und prüfen Sie, ob eine Division oder modulare Operation mit Null vorliegt. Der folgende PythonScript-Code führt zum Beispiel eine Division durch null aus, was dem Ergebnis im Fehlerstring entspricht:
a = 0 b = 5 c = b/a print c
Im obigen Beispielskript wird der folgende Fehler ausgegeben, da das zweite Argument des Divisionsvorgangs null ist:
"faultstring": "Evaluation of script myscript.py (py) failed with reason: "ZeroDivisionError: integer division or modulo by zero""
Lösung
Achten Sie darauf, dass das zweite Argument eines Divisions- oder Modulo-Vorgangs in PythonScript nicht null ist.
Um das Problem mit dem oben gezeigten PythonScript-Beispiel zu beheben, verwenden Sie als zweites Argument eines Divisions- oder Modulo-Vorgangs einen Wert ungleich null. Beispiel:
a = 3 b = 5 c = b/a print c
Weitere Informationen
Es gibt neben dem oben beschriebenen Fehler noch viele andere Ursachen für den steps.script.ScriptEvaluationFailed
-Fehler. Weitere Informationen finden Sie in der offiziellen Python-Dokumentation.