Stai visualizzando la documentazione di Apigee e Apigee hybrid.
Visualizza
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
. 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 utilizzata senza essere definita, viene visualizzato l'errore Name (Nome).
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" } } }
Corpo di esempio 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 il criterio PythonScript e il nome della variabile non definita dall'elemento errorstring della risposta di errore. Ad esempio, nella stringa di errore seguente, 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 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 all'interno del codice PythonScript. Se la variabile non è definita, questo è la causa dell'errore.
Nello script di esempio riportato sopra, la variabile num3 non è definita. Di conseguenza, 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 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" } } }
Corpo di esempio 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 del criterio PythonScript e il motivo dell'errore dall'elemento errorstring della risposta di errore. Ad esempio, nella stringa di errore seguente, 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 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 indicato 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 non sia pari a zero in PythonScript.
Per risolvere il problema con il PythonScript di esempio 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
Esistono molte altre cause possibili dell'errore steps.script.ScriptEvaluationFailed
oltre a quelle descritte sopra. Per ulteriori informazioni, consulta la documentazione ufficiale di Python.