Stai visualizzando la documentazione di Apigee e Apigee hybrid.
Visualizza la documentazione di
Apigee Edge.
ScriptEvaluationFailed
Codice di errore
steps.script.ScriptEvaluationFailed
Corpo della risposta di errore
{ "fault": { "faultstring": "Evaluation of script pythonscript_name (py) failed with reason: error_type: error_description"", "detail": { "errorcode": "steps.script.ScriptEvaluationFailed" } } }
Cause possibili
La policy Script Python può
generare diversi tipi di errori ScriptEvaluationFailed. Le sezioni seguenti descrivono alcuni di questi errori.
NameError
Se nel codice PythonScript è presente una variabile a cui viene fatto riferimento o su cui viene eseguita un'operazione senza essere definita, viene visualizzato l'errore Name.
Corpo della risposta di errore
{ "fault": { "faultstring": "Evaluation of script pythonscript_name (py) failed with reason: "NameError: variable_name is not defined"", "detail": { "errorcode": "steps.script.ScriptEvaluationFailed" } } }
Esempio di corpo della risposta di errore
{ "fault": { "faultstring": "Evaluation of script myscript.py (py) failed with reason: "NameError: 'num3' is not defined"", "detail": { "errorcode": "steps.script.ScriptEvaluationFailed" } } }
Diagnosi
Identifica la policy PythonScript e il nome della variabile non definita dall'elemento faultstring della risposta di errore. Ad esempio, nella seguente stringa di errore, il nome di PythonScript è
myscript.pye il nome della variabile non definita è num3:"faultstring": "Evaluation of script myscript.py (py) failed with reason: "NameError: 'num3' is not defined""
Esamina il file di origine PythonScript identificato nel passaggio 1 sopra e verifica se viene fatto riferimento alla variabile non definita identificata nel passaggio 1 sopra. Ad esempio, il seguente codice PythonScript fa riferimento alla variabile non definita num3, che corrisponde a 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))
Controlla se la variabile specifica è definita nel codice PythonScript. Se la variabile non è definita, questo è il motivo dell'errore.
Nello script di esempio mostrato sopra, la variabile num3 non è definita. Pertanto, riceverai il seguente errore:
"faultstring": "Evaluation of script myscript.py (py) failed with reason: "NameError: 'num3' is not defined""
Risoluzione
Assicurati che tutte le variabili a cui viene fatto riferimento nel codice PythonScript siano definite correttamente.
Per risolvere il problema con lo script Python di esempio mostrato sopra, definisci la variabile num3 prima di utilizzarla. Ad esempio:
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
Questo errore viene generato quando il secondo argomento di un'operazione di divisione o modulo è zero.
Corpo della risposta di errore
{ "fault": { "faultstring": "Evaluation of script pythonscript_name (py) failed with reason: "ZeroDivisionError: reason_for_error"", "detail": { "errorcode": "steps.script.ScriptEvaluationFailed" } } }
Esempio di corpo della risposta di errore
{ "fault": { "faultstring": "Evaluation of script myscript.py (py) failed with reason: "ZeroDivisionError: integer division or modulo by zero"", "detail": { "errorcode": "steps.script.ScriptEvaluationFailed" } } }
Diagnosi
Identifica il nome della policy PythonScript e il motivo dell'errore dall'elemento faultstring della risposta di errore. Ad esempio, nella seguente stringa di errore, il nome di PythonScript è
myscript.pye il motivo dell'errore èinteger division or modulo by zero:"faultstring": "Evaluation of script myscript.py (py) failed with reason: "ZeroDivisionError: integer division or modulo by zero""
Esamina il file di origine PythonScript identificato nel passaggio 1 sopra e verifica se è presente un'operazione di divisione o modulo per zero. Ad esempio, il seguente codice PythonScript esegue la divisione per zero, che corrisponde a quanto riportato in faultstring:
a = 0 b = 5 c = b/a print c
Nello script di esempio mostrato sopra, poiché il secondo argomento dell'operazione di divisione è zero, viene visualizzato il seguente errore:
"faultstring": "Evaluation of script myscript.py (py) failed with reason: "ZeroDivisionError: integer division or modulo by zero""
Risoluzione
Assicurati che il secondo argomento di un'operazione di divisione o modulo sia diverso da zero in PythonScript.
Per risolvere il problema con l'esempio di PythonScript mostrato sopra, utilizza un valore diverso da zero come secondo argomento di un'operazione di divisione o modulo. Ad esempio:
a = 3 b = 5 c = b/a print c
Ulteriori informazioni
Oltre a quelli descritti sopra, esistono molti altri possibili motivi dell'errore steps.script.ScriptEvaluationFailed. Per saperne di più, consulta la documentazione ufficiale di Python.