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
Il criterio Script Python può generare diversi tipi di errori ScriptEvaluationFailed
. Nelle sezioni seguenti vengono descritti alcuni di questi errori.
NameError
Se nel codice PythonScript c'è una variabile a cui viene fatto riferimento o su cui viene eseguita l'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 di 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 il criterio PythonScript e il nome della variabile non definita dall'elemento stringa di errore della risposta di errore. Ad esempio, nella seguente stringa di errore, il nome PythonScript è
myscript.py
e 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 precedente e verifica se viene fatto riferimento alla variabile non definita identificata nel passaggio 1. Ad esempio, il seguente codice PythonScript fa riferimento alla variabile non definita num3, che corrisponde alla stringa di errore:
num1 = 1.5 num2 = 6.3 sum = float(num1) + float(num3) print('The sum of {0} and {1} is {2}'.format(num1, num3 sum))
Verifica se la variabile specifica è definita all'interno del codice PythonScript. Se la variabile non è definita, è questa la causa dell'errore.
Nello script di esempio mostrato sopra, la variabile num3 non è definita. Pertanto, verrà visualizzato 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 l'esempio PythonScript 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 una divisione o di un'operazione 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 di 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 del criterio PythonScript e il motivo dell'errore dall'elemento stringa di errore della risposta di errore. Ad esempio, nella seguente stringa di errore, il nome PythonScript è
myscript.py
e 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 riportato sopra e verifica se è presente una divisione o un'operazione di modulo per zero. Ad esempio, il seguente codice PythonScript esegue la divisione per zero, che corrisponde al contenuto della stringa di errore:
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 una divisione o di un'operazione modulo non sia zero in PythonScript.
Per risolvere il problema con l'esempio PythonScript mostrato sopra, utilizza un valore diverso da zero come secondo argomento di una divisione o di un'operazione modulo. Ad esempio:
a = 3 b = 5 c = b/a print c
Ulteriori informazioni
Esistono molte altre possibili cause dell'errore steps.script.ScriptEvaluationFailed
oltre a quelle descritte sopra. Per ulteriori informazioni, consulta la documentazione ufficiale di Python.