Después de ejecutar un flujo de trabajo, puedes acceder a los resultados de la ejecución en la consola de Google Cloud o con Google Cloud CLI.
Console
En la consola de Google Cloud, ve a la página Workflows.
Para acceder a los resultados de la ejecución de un flujo de trabajo, haz clic en su nombre para ir a la página Detalles del flujo de trabajo.
Para obtener detalles sobre una ejecución en particular, en la pestaña Executions, haz clic en el ID de ejecución en la lista para ir a la página Execution details.
En la pestaña Resumen, cada ejecución tiene la siguiente información:
- ID de ejecución: Es el identificador único de la ejecución del flujo de trabajo.
- Estado de ejecución: Indica el estado final del flujo de trabajo, incluido el paso actual o final del flujo de trabajo.
- Se creó la ejecución: Indica cuándo se inició la ejecución.
- Inicio de la ejecución: Es el momento en que comenzó a ejecutarse la ejecución y a ejecutar los pasos.
- Finalización de la ejecución: Es el momento en que finalizó la ejecución.
- Duración de la ejecución: Es el tiempo total transcurrido. Esto puede ser un indicio de errores de red o problemas de conectividad.
- Nombre del flujo de trabajo: Es el nombre del flujo de trabajo.
- Revisión del flujo de trabajo: Es la revisión actual en el momento de la ejecución.
- Nivel de registro de llamadas: Es el nivel de registro de llamadas aplicado durante la ejecución. Para obtener más información, consulta Registro de llamadas.
- Entrada: Los argumentos del entorno de ejecución que se pasan al flujo de trabajo, si corresponde.
- Resultado: Es el resultado del flujo de trabajo. Si la ejecución falló, incluye la excepción que provocó la falla. En este documento, consulta Mapas de errores de ejecución.
Para ver el historial de ejecución del flujo de trabajo como una lista de entradas de pasos, haz clic en la pestaña Pasos. Para obtener más información, consulta Cómo ver el historial de los pasos de ejecución.
Para ver los registros de una ejecución de flujo de trabajo, haz clic en la pestaña Registros.
Para filtrar los registros de ejecución, usa el campo Filtro que se encuentra en la parte superior de la tabla. Por ejemplo, para mostrar solo los intentos de ejecución fallidos, ingresa
failed
en el campo de texto del filtro.
gcloud
Para ver una lista completa de las ejecuciones de un flujo de trabajo, ingresa el siguiente comando:
gcloud workflows executions list WORKFLOW_NAME
Reemplaza
WORKFLOW_NAME
por el nombre de tu flujo de trabajo. Copia el ID de ejecución que te interesa.Para ver los registros de ejecución de un flujo de trabajo, ingresa el siguiente comando:
gcloud workflows executions describe \ --workflow=WORKFLOW_NAME \ EXECUTION_ID
Reemplaza lo siguiente:
WORKFLOW_NAME
: El nombre del flujo de trabajoEXECUTION_ID
: El ID único de la ejecución
Este comando muestra un resultado similar al siguiente:
argument: 'null' endTime: '2022-07-19T12:40:07.070039707Z' error: context: |- The argument of 'in' must be a dict or an array; got: null in step "checkSearchTermInInput", routine "main", line: 12 payload: "{"message":"The argument of 'in' must be a dict or an array; got: null"
,"tags":["TypeError"]}" stackTrace: elements: - position: column: '26' length: '24' line: '12' routine: main step: checkSearchTermInInput name: projects/1051295516635/locations/us-central1/workflows/myFirstWorkflow/executions/17ffc89c-0a27-4d2f-8356-e681d949a3d3 startTime: '2022-07-19T12:40:07.024823663Z' state: FAILED status: currentSteps: - routine: main step: checkSearchTermInInput workflowRevisionId: 000001-ac2argument
: Los argumentos del entorno de ejecución que se pasan al flujo de trabajo, si los hayendTime
: Cuando finalizó la ejecuciónerror
: Es el mensaje de error que se genera como parte de la excepción que provocó el error de ejecución.name
: Es el nombre completo de la ejecución, incluido el nombre del proyecto, la ubicación del flujo de trabajo, el nombre del flujo de trabajo y el ID de ejecución.startTime
: Cuándo comenzó la ejecuciónstate
: Indica el estado final del flujo de trabajo.status
: Es el paso actual o final del flujo de trabajo de la ejecución.workflowRevisionID
: Es la revisión actual en el momento de la ejecución.
Mapas de errores de ejecución
Cuando un flujo de trabajo arroja un error durante la ejecución que no se detecta en un bloque try/except
, la ejecución falla y se muestra un mapa de errores (un diccionario JSON) que describe el error.
Los errores que se generan durante la ejecución del flujo de trabajo contienen etiquetas para ayudarte a identificar qué los causó. Por ejemplo, el error que muestra un conector puede tener dos claves (tags
y message
) similares a las siguientes:
{'tags': ['SystemError'], 'message': 'an error has occurred'}
Puede haber más de una etiqueta. Para verificar una etiqueta específica, puedes usar una expresión. Por ejemplo:
${'SystemError' in e.tags}
Datos de error de acceso que se muestran como una cadena
Algunos conectores y APIs de HTTP serializarán los errores como cadenas antes de mostrarlos. Puedes usar funciones de biblioteca estándar para restablecer una carga útil en el error original. Por ejemplo, para convertir una cadena de error en un mapa, puedes usar las funciones json.decode
y text.encode
:
json.decode(text.encode(ERROR_FROM_API))
Etiquetas de error
En la siguiente tabla, se describe el significado de las diferentes etiquetas de error.
Etiqueta | Descripción |
---|---|
AuthError | Se genera cuando falla la generación de credenciales para una solicitud HTTP. |
ConnectionError | Se genera cuando se establece una conexión correctamente con el extremo, pero hay un problema con la conexión durante la transferencia de datos. La conexión se cierra antes de que se reciba una respuesta completa y es posible que un mensaje no se haya entregado al extremo. Es posible que los reintentos no sean idempotentes. |
ConnectionFailedError | Se genera cuando no se establece una conexión con el extremo de API, por ejemplo, debido a un nombre de dominio incorrecto, problemas de resolución de DNS o a otros problemas de red. Los reintentos son idempotentes. |
HttpError | Se genera cuando una solicitud HTTP falla con un estado de error HTTP. Cuando se genera esta excepción, la respuesta es un mapa con los siguientes elementos:
|
IndexError | Se genera cuando un subíndice de secuencia es un número entero fuera de rango. |
KeyError | Se genera cuando no se encuentra una clave de mapa en el conjunto de claves existentes. |
OperationError | Se genera cuando una operación de larga duración finaliza sin éxito. |
ParallelNestingError | Se genera cuando se supera la profundidad máxima en la que se pueden anidar los pasos en paralelo. |
RecursionError | Se genera cuando el intérprete detecta que se superó la profundidad máxima de la pila de llamadas. |
ResourceLimitError | Se genera cuando se agota algún límite de recursos. Cuando se genera de forma interna, este tipo de error no se puede detectar y causa una falla de ejecución inmediata. |
ResponseTypeError | Se genera cuando una operación de larga duración muestra una respuesta del tipo incorrecto. |
SystemError | Se genera cuando el intérprete encuentra un error interno. |
TimeoutError | Se genera cuando se agota el tiempo de espera de una función del sistema a nivel del sistema. |
TypeError | Se genera cuando se aplica una operación o función a un objeto de tipo incompatible. El valor asociado es una cadena que proporciona detalles sobre la discrepancia de tipo. |
UnhandledBranchError | Se genera cuando una o más ramas o iteraciones encuentran un error de tiempo de ejecución no controlado hasta un número máximo. |
ValueError | Se genera cuando una operación o función recibe un argumento que tiene el tipo correcto, pero un valor incorrecto, y la situación no se describe con una excepción más precisa, como una IndexError . |
ZeroDivisionError | Se genera cuando el segundo argumento de una operación de división o módulo es cero. El valor asociado es una cadena que indica el tipo de operandos y la operación. |
También puedes generar errores personalizados
mediante la sintaxis raise
.
¿Qué sigue?
- Descripción general de la depuración
- Problemas conocidos de Workflows
- Envía registros de ejecución a Cloud Logging
- Soluciona problemas