Ver el historial de pasos de ejecución

Puedes obtener el historial de una ejecución de flujo de trabajo específica como una lista de entradas de pasos. Cada entrada de paso proporciona información que puede ayudarte a analizar, depurar u optimizar un flujo de trabajo. Por ejemplo, puedes confirmar qué pasos se han ejecutado y determinar la duración y el éxito de un paso. Esto puede ser especialmente útil al depurar un flujo de trabajo no lineal grande o complicado (por ejemplo, uno con muchas ramas paralelas).

Una entrada de paso representa un paso real en el código fuente (por ejemplo, assign o call) o un bloque de instrucciones (por ejemplo, un bucle for o un bloque try/retry/except). Para ver una lista completa de los tipos de pasos, consulta StepType.

Nivel del historial de ejecuciones

Cuando creas o ejecutas un flujo de trabajo, puedes especificar un historial de ejecución básico o detallado. Puedes aplicar este ajuste a nivel de flujo de trabajo o de ejecución.

De forma predeterminada, no se especifica ningún nivel de historial de ejecución y se devuelven las entradas de pasos Básico.

Si quieres que el historial de ejecución incluya los valores de las variables incluidas en el ámbito y, si procede, el número esperado de iteraciones (por ejemplo, al usar un bucle for, una rama paralela o una iteración), debes definir el nivel del historial de ejecución como Detallado.

Si no se especifica ningún nivel de historial de ejecución para una ejecución, se determina en función del nivel aplicado al flujo de trabajo. Si los niveles son diferentes, el ajuste aplicado a nivel de ejecución anula el ajuste aplicado a nivel de flujo de trabajo en esa ejecución.

Cómo obtener entradas de pasos

Puedes obtener entradas de pasos enviando una solicitud a la API REST WorkflowExecutions o a través de la Google Cloud consola:

  • Google Cloud Consola: en este documento, consulta Ver entradas de pasos en la consola.

    Además de mostrar las entradas de los pasos y sus detalles, la consola proporciona una representación gráfica de los pasos de ejecución, lo que facilita la visualización y el análisis de la ruta de ejecución de un flujo de trabajo.

  • API REST Workflow Executions: en este documento, consulta Obtener una entrada de paso y Listar entradas de paso.

Información de la entrada del paso

Una entrada de paso incluye la siguiente información. Las entradas de pasos detalladas también incluyen la información básica de las entradas de pasos.

Para obtener más información, consulta los ejemplos de este documento.

Información básica sobre la entrada de pasos

Nombre Nombre completo del recurso de la entrada del paso, que es un ID único con el siguiente formato, donde STEPENTRY_ID es un contador creciente:
projects/PROJECT_NUMBER/locations/LOCATION/workflows/WORKFLOW_ID/executions/EXECUTION_ID/stepEntries/STEPENTRY_ID
Por ejemplo:
projects/123456789012/locations/us-central1/workflows/myFirstWorkflow/executions/ae8a66a1-cefa-4d16-8a2f-d50c712d8ef1/stepEntries/2
Crear y actualizar horas Marcas de tiempo de la hora de creación de la entrada del paso y de su última actualización. Si se ha completado una entrada de paso, updateTime indica la hora de finalización.
Nombres de rutinas y pasos Nombres de la rutina y del paso al que pertenece la entrada del paso. El nombre de una rutina es el nombre del subflujo de trabajo definido en el código fuente YAML o JSON. El nombre de la rutina de nivel superior es main.
Estado y tipo de progreso Estado de la entrada del paso (por ejemplo, si la entrada se ha completado correctamente o ha fallado, o si una entrada de paso está en curso y el tipo de progreso). Para ver una lista completa de los estados y tipos de progreso, consulta State y ProgressType.
Información de navegación

Posición de la entrada del paso para que puedas entender mejor la jerarquía y el flujo del flujo de trabajo. Por ejemplo, qué entradas del paso vienen antes o después de la entrada del paso actual, o cuáles son elementos principales o secundarios de la entrada del paso.

Para obtener más información, consulta NavigationInfo.
Metadatos

Datos relacionados con una entrada de paso iterativo, que pueden incluir lo siguiente:

  • Un ID que indica el subproceso. Por ejemplo, qué STEP_PARALLEL_BRANCH_ENTRY de STEP_PARALLEL_BRANCH.
  • La iteración de un bucle for, por ejemplo, qué STEP_FOR_ITERATION en STEP_FOR
Para obtener más información, consulta StepEntryMetadata.
Excepciones Carga útil relacionada con las excepciones y que proporciona una descripción de por qué ha fallado una entrada de paso.

Información detallada sobre la entrada de pasos

Metadatos

Si procede, el número esperado de iteraciones en el progreso del paso. Por ejemplo, al usar un bucle for, una rama paralela o una iteración.

Ten en cuenta que el recuento calculado no funcionará como se espera si los límites del bucle incluyen expresiones que incorporen alguno de los siguientes elementos:

  • Una profundidad de expresión anidada superior a 10
  • Funciones integradas que no sean len()
  • Evaluaciones que incluyan valores como .inf, -.inf, .NAN, Infinity o -Infinity
  • Errores
Para obtener más información, consulta StepEntryMetadata.
Datos variables

Datos relacionados con los valores de las variables incluidas en el ámbito asociadas a este paso, incluidos los nombres y los valores de las variables locales definidas por el usuario y los resultados de las evaluaciones de expresiones.

Ten en cuenta que el ámbito excluye las variables internas vinculadas a las funciones integradas de los flujos de trabajo.

Para obtener más información, consulta VariableData.

Ver entradas de pasos en la consola

Puede ver las entradas de pasos de una ejecución de flujo de trabajo específica en la Google Cloud consola.

  1. En la Google Cloud consola, ve a la página Flujos de trabajo.

    Ve a Workflows

  2. Haga clic en el nombre del flujo de trabajo para ir a la página Detalles del flujo de trabajo.

  3. Para obtener información sobre una ejecución concreta, haz clic en su ID.

    En la pestaña Resumen se proporciona información sobre la ejecución general, incluido cualquier error que haya provocado el fallo de la ejecución. Para obtener más información, consulta Mapas de errores de ejecución.

  4. 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.

    Se muestran todas las entradas de pasos de la ejecución del flujo de trabajo.

  5. Para filtrar las entradas de pasos, usa el campo Filtro de la parte superior de la tabla para seleccionar una propiedad y un valor. Por ejemplo, State: Failed.

  6. Para mostrar los enlaces de las entradas de Padre, Hijos, Siguiente y Anterior de un paso, haz clic en la entrada de ese paso.

    Si haces clic en un enlace, los demás se actualizan automáticamente. Por ejemplo, Superior enlazará con el elemento superior de la entrada del paso en el que hayas hecho clic.

  7. El panel Visualización ofrece una representación gráfica de los pasos del flujo de trabajo y te ayuda a entender la ruta del flujo de trabajo.

    Ejemplo de panel de visualización

    Haz clic en el diagrama para ampliarlo:

    Panel de visualización que muestra un flujo de trabajo con pasos fallidos

    Ten en cuenta que la visualización puede ser diferente de las entradas de pasos. Por ejemplo, un bloque for se representa como un solo componente en la visualización. Sin embargo, en función del número de iteraciones, puede haber varias entradas de pasos.

    En el panel, puedes hacer lo siguiente:

    • Ampliar o reducir la visualización
    • Ocultar o mostrar las entradas de pasos principales
    • Hacer clic en una entrada de paso y ver las entradas anteriores y siguientes
    • Confirma las entradas de pasos completados y fallidos, que se indican con una marca de verificación verde o un signo de exclamación rojo.
    • Cierra el panel Visualización haciendo clic en la flecha para contraerlo. Vuelve a hacer clic en la flecha para abrir el panel.

Antes de obtener una entrada de pasos

Para obtener los permisos que necesitas para recuperar una entrada de paso, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Administrador de Workflows (workflows.stepEntries.get) en tu proyecto. Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.

También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.

Recuperar una entrada de pasos

Para recuperar una entrada de paso de una ejecución de flujo de trabajo determinada, utiliza el método projects.locations.workflows.executions.stepEntries.get.

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • PROJECT_NUMBER: número de tu Google Cloud proyecto, que aparece en la página IAM & Admin Settings (Ajustes de IAM y administración).
  • LOCATION: la región en la que se implementa el flujo de trabajo. Por ejemplo, us-central1.
  • WORKFLOW_ID: el nombre que ha definido el usuario para el flujo de trabajo. Por ejemplo, myFirstWorkflow.
  • EXECUTION_ID: ID único de una ejecución de flujo de trabajo que se devuelve después de ejecutar un flujo de trabajo.
  • STEPENTRY_ID: el ID único de una entrada de paso, por ejemplo, 1.

Para enviar tu solicitud, despliega una de estas opciones:

Deberías recibir una respuesta JSON similar a la siguiente:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION/workflows/WORKFLOW_ID/executions/EXECUTION_ID/stepEntries/STEPENTRY_ID",
  "createTime": "2024-08-15T19:03:08.328851864Z",
  "updateTime": "2024-08-15T19:03:08.331099634Z",
  "routine": "main",
  "step": "checkSearchTermInInput",
  "stepType": "STEP_CONDITION",
  "state": "STATE_SUCCEEDED",
  "entryId": "2",
  "navigationInfo": {
    "children": [
      "3"
    ],
    "parent": "1",
    "next": "3",
    "previous": "1"
  },
  "variableData": {}
}

Antes de enumerar las entradas de pasos

Para obtener los permisos que necesitas para enumerar las entradas de pasos, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Administrador de Workflows (workflows.stepEntries.list) en tu proyecto. Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.

También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.

Mostrar entradas de pasos

Para enumerar las entradas de pasos de una ejecución de flujo de trabajo determinada, utiliza el método projects.locations.workflows.executions.stepEntries.list. De forma predeterminada, los resultados se devuelven en orden ascendente de la createTime de las entradas de pasos.

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • PROJECT_NUMBER: número de tu Google Cloud proyecto, que aparece en la página IAM & Admin Settings (Ajustes de IAM y administración).
  • LOCATION: la región en la que se implementa el flujo de trabajo. Por ejemplo, us-central1.
  • WORKFLOW_ID: el nombre que ha definido el usuario para el flujo de trabajo. Por ejemplo, myFirstWorkflow.
  • EXECUTION_ID: ID único de una ejecución de flujo de trabajo que se devuelve después de ejecutar un flujo de trabajo.

Para enviar tu solicitud, despliega una de estas opciones:

Deberías recibir una respuesta JSON similar a la siguiente:

{
  "stepEntries": [
    {
      "name": "projects/PROJECT_NUMBER/locations/LOCATION/workflows/WORKFLOW_ID/executions/EXECUTION_ID/stepEntries/1",
      "createTime": "2024-08-15T19:03:08.328807964Z",
      "updateTime": "2024-08-15T19:03:08.331099694Z",
      "routine": "main",
      "step": "checkSearchTermInInput",
      "stepType": "STEP_SWITCH",
      "state": "STATE_SUCCEEDED",
      "entryId": "1",
      "navigationInfo": {
        "children": [
          "2"
        ],
        "next": "2"
      },
      "variableData": {}
    },
    {
      "name": "projects/PROJECT_NUMBER/locations/LOCATION/workflows/WORKFLOW_ID/executions/EXECUTION_ID/stepEntries/2",
      "createTime": "2024-08-15T19:03:08.328851864Z",
      "updateTime": "2024-08-15T19:03:08.331099634Z",
      "routine": "main",
      "step": "checkSearchTermInInput",
      "stepType": "STEP_CONDITION",
      "state": "STATE_SUCCEEDED",
      "entryId": "2",
      "navigationInfo": {
        "children": [
          "3"
        ],
        "parent": "1",
        "next": "3",
        "previous": "1"
      },
      "variableData": {}
    },
    {
      "name": "projects/PROJECT_NUMBER/locations/LOCATION/workflows/WORKFLOW_ID/executions/EXECUTION_ID/stepEntries/3",
      "createTime": "2024-08-15T19:03:08.331037314Z",
      "updateTime": "2024-08-15T19:03:08.331099554Z",
      "routine": "main",
      "step": "checkSearchTermInInput.condition1",
      "stepType": "STEP_ASSIGN",
      "state": "STATE_SUCCEEDED",
      "entryId": "3",
      "navigationInfo": {
        "parent": "2",
        "next": "4",
        "previous": "2"
      },
      "variableData": {
        "variables": {
          "input": {
            "searchTerm": "asia"
          },
          "searchTerm": "asia"
        }
      }
    },
    {
      "name": "projects/PROJECT_NUMBER/locations/LOCATION/workflows/WORKFLOW_ID/executions/EXECUTION_ID/stepEntries/4",
      "createTime": "2024-08-15T19:03:08.331100404Z",
      "updateTime": "2024-08-15T19:03:08.633741469Z",
      "routine": "main",
      "step": "readWikipedia",
      "stepType": "STEP_CALL",
      "state": "STATE_SUCCEEDED",
      "entryId": "4",
      "navigationInfo": {
        "next": "5",
        "previous": "3"
      },
      "variableData": {}
    },
    {
      "name": "projects/PROJECT_NUMBER/locations/LOCATION/workflows/WORKFLOW_ID/executions/EXECUTION_ID/stepEntries/5",
      "createTime": "2024-08-15T19:03:08.633969694Z",
      "updateTime": "2024-08-15T19:03:08.634063018Z",
      "routine": "main",
      "step": "returnOutput",
      "stepType": "STEP_RETURN",
      "state": "STATE_SUCCEEDED",
      "entryId": "5",
      "navigationInfo": {
        "previous": "4"
      },
      "variableData": {
        "variables": {
          "wikiResult": {
            "headers": {
              ...
            },
            "body": [
              ...
            ],
            "code": 200
          },
          "input": {
            "searchTerm": "asia"
          },
          "searchTerm": "asia"
        }
      }
    }
  ],
  "totalSize": 5
}

Eliminar entradas de pasos

Para eliminar todas las entradas de pasos de una ejecución de flujo de trabajo determinada, usa el método projects.locations.workflows.executions.deleteExecutionHistory.

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • WORKFLOW_NAME: nombre del flujo de trabajo.
  • PROJECT_NUMBER: tu número de proyecto Google Cloud.
  • LOCATION: la región en la que se implementa el flujo de trabajo. Por ejemplo, us-central1.
  • EXECUTION_ID: el ID de la ejecución de la que se deben eliminar las entradas de pasos.

Para enviar tu solicitud, despliega una de estas opciones:

Si la solicitud se hace correctamente, el cuerpo de la respuesta estará vacío.

Ejemplos

Flujo de trabajo con un bloque for

Flujo de trabajo

YAML

- assignStep:
    assign:
      - sum: 0
- forStep:
    for:
      range: [1, 2]
      value: v
      steps:
        - sumStep:
            assign:
              - sum: ${sum + v}
- returnStep:
    return: ${sum}

JSON

[
  {
    "assignStep": {
      "assign": [
        {
          "sum": 0
        }
      ]
    }
  },
  {
    "forStep": {
      "for": {
        "range": [
          1,
          2
        ],
        "value": "v",
        "steps": [
          {
            "sumStep": {
              "assign": [
                {
                  "sum": "${sum + v}"
                }
              ]
            }
          }
        ]
      }
    }
  },
  {
    "returnStep": {
      "return": "${sum}"
    }
  }
]

Diagrama

Flujo de trabajo con un bloque for
Imagen 1. Flujo de trabajo con un bloque for (haz clic en el diagrama para ampliarlo).

Entradas de pasos

{
  "stepEntries": [
    {
      "name": "projects/1051295516635/locations/us-central1/workflows/workflow-for-block/executions/0bc47b85-a399-4101-b629-1f623802e32d/stepEntries/1",
      "createTime": "2024-08-15T19:32:18.119578307Z",
      "updateTime": "2024-08-15T19:32:18.119661828Z",
      "routine": "main",
      "step": "assignStep",
      "stepType": "STEP_ASSIGN",
      "state": "STATE_SUCCEEDED",
      "entryId": "1",
      "navigationInfo": {
        "next": "2"
      },
      "variableData": {
        "variables": {
          "sum": 0
        }
      }
    },
    {
      "name": "projects/1051295516635/locations/us-central1/workflows/workflow-for-block/executions/0bc47b85-a399-4101-b629-1f623802e32d/stepEntries/2",
      "createTime": "2024-08-15T19:32:18.119662643Z",
      "updateTime": "2024-08-15T19:32:18.120893531Z",
      "routine": "main",
      "step": "forStep",
      "stepType": "STEP_FOR",
      "state": "STATE_SUCCEEDED",
      "entryId": "2",
      "navigationInfo": {
        "children": [
          "3",
          "5"
        ],
        "next": "3",
        "previous": "1"
      },
      "stepEntryMetadata": {
        "progressType": "PROGRESS_TYPE_FOR",
        "expectedIteration": "2"
      },
      "variableData": {}
    },
    {
      "name": "projects/1051295516635/locations/us-central1/workflows/workflow-for-block/executions/0bc47b85-a399-4101-b629-1f623802e32d/stepEntries/3",
      "createTime": "2024-08-15T19:32:18.119732820Z",
      "updateTime": "2024-08-15T19:32:18.120463449Z",
      "routine": "main",
      "step": "forStep",
      "stepType": "STEP_FOR_ITERATION",
      "state": "STATE_SUCCEEDED",
      "entryId": "3",
      "navigationInfo": {
        "children": [
          "4"
        ],
        "parent": "2",
        "next": "4",
        "previous": "2"
      },
      "stepEntryMetadata": {
        "progressType": "PROGRESS_TYPE_FOR",
        "progressNumber": "1"
      },
      "variableData": {}
    },
    {
      "name": "projects/1051295516635/locations/us-central1/workflows/workflow-for-block/executions/0bc47b85-a399-4101-b629-1f623802e32d/stepEntries/4",
      "createTime": "2024-08-15T19:32:18.119737066Z",
      "updateTime": "2024-08-15T19:32:18.120463358Z",
      "routine": "main",
      "step": "sumStep",
      "stepType": "STEP_ASSIGN",
      "state": "STATE_SUCCEEDED",
      "entryId": "4",
      "navigationInfo": {
        "parent": "3",
        "next": "5",
        "previous": "3"
      },
      "stepEntryMetadata": {
        "progressType": "PROGRESS_TYPE_FOR",
        "progressNumber": "1"
      },
      "variableData": {
        "variables": {
          "sum": 1,
          "v": 1
        }
      }
    },
    {
      "name": "projects/1051295516635/locations/us-central1/workflows/workflow-for-block/executions/0bc47b85-a399-4101-b629-1f623802e32d/stepEntries/5",
      "createTime": "2024-08-15T19:32:18.120465172Z",
      "updateTime": "2024-08-15T19:32:18.120893471Z",
      "routine": "main",
      "step": "forStep",
      "stepType": "STEP_FOR_ITERATION",
      "state": "STATE_SUCCEEDED",
      "entryId": "5",
      "navigationInfo": {
        "children": [
          "6"
        ],
        "parent": "2",
        "next": "6",
        "previous": "4"
      },
      "stepEntryMetadata": {
        "progressType": "PROGRESS_TYPE_FOR",
        "progressNumber": "2"
      },
      "variableData": {}
    },
    {
      "name": "projects/1051295516635/locations/us-central1/workflows/workflow-for-block/executions/0bc47b85-a399-4101-b629-1f623802e32d/stepEntries/6",
      "createTime": "2024-08-15T19:32:18.120470187Z",
      "updateTime": "2024-08-15T19:32:18.120893389Z",
      "routine": "main",
      "step": "sumStep",
      "stepType": "STEP_ASSIGN",
      "state": "STATE_SUCCEEDED",
      "entryId": "6",
      "navigationInfo": {
        "parent": "5",
        "next": "7",
        "previous": "5"
      },
      "stepEntryMetadata": {
        "progressType": "PROGRESS_TYPE_FOR",
        "progressNumber": "2"
      },
      "variableData": {
        "variables": {
          "sum": 3,
          "v": 2
        }
      }
    },
    {
      "name": "projects/1051295516635/locations/us-central1/workflows/workflow-for-block/executions/0bc47b85-a399-4101-b629-1f623802e32d/stepEntries/7",
      "createTime": "2024-08-15T19:32:18.120894873Z",
      "updateTime": "2024-08-15T19:32:18.121003185Z",
      "routine": "main",
      "step": "returnStep",
      "stepType": "STEP_RETURN",
      "state": "STATE_SUCCEEDED",
      "entryId": "7",
      "navigationInfo": {
        "previous": "6"
      },
      "variableData": {
        "variables": {
          "sum": 3
        }
      }
    }
  ],
  "totalSize": 7
}

Flujo de trabajo con una llamada a un subflujo de trabajo

Flujo de trabajo

YAML

main:
  steps:
    - callStep:
        call: square
        args:
          x: 10
        result: t
    - retStep:
        return: ${t}
square:
  params: [x]
  steps:
    - assignStep:
        assign:
          - y: ${x*x}
    - retStep:
        return: ${y}

JSON

{
  "main": {
    "steps": [
      {
        "callStep": {
          "call": "square",
          "args": {
            "x": 10
          },
          "result": "t"
        }
      },
      {
        "retStep": {
          "return": "${t}"
        }
      }
    ]
  },
  "square": {
    "params": [
      "x"
    ],
    "steps": [
      {
        "assignStep": {
          "assign": [
            {
              "y": "${x*x}"
            }
          ]
        }
      },
      {
        "retStep": {
          "return": "${y}"
        }
      }
    ]
  }
}

Diagrama

Flujo de trabajo con una llamada a un subflujo de trabajo
Imagen 2. Flujo de trabajo con una llamada a un subflujo de trabajo (haz clic en el diagrama para ampliarlo).

Entradas de pasos

{
  "stepEntries": [
    {
      "name": "projects/1051295516635/locations/us-central1/workflows/workflow-subworkflow-call/executions/e203bc96-a1cf-47ba-b6de-f3d1b0909664/stepEntries/1",
      "createTime": "2024-08-15T19:37:44.162778920Z",
      "updateTime": "2024-08-15T19:37:44.168683007Z",
      "routine": "main",
      "step": "callStep",
      "stepType": "STEP_CALL",
      "state": "STATE_SUCCEEDED",
      "entryId": "1",
      "navigationInfo": {
        "children": [
          "2",
          "3"
        ],
        "next": "2"
      },
      "variableData": {
        "variables": {
          "t": 100
        }
      }
    },
    {
      "name": "projects/1051295516635/locations/us-central1/workflows/workflow-subworkflow-call/executions/e203bc96-a1cf-47ba-b6de-f3d1b0909664/stepEntries/2",
      "createTime": "2024-08-15T19:37:44.168598736Z",
      "updateTime": "2024-08-15T19:37:44.168657969Z",
      "routine": "square",
      "step": "assignStep",
      "stepType": "STEP_ASSIGN",
      "state": "STATE_SUCCEEDED",
      "entryId": "2",
      "navigationInfo": {
        "parent": "1",
        "next": "3",
        "previous": "1"
      },
      "variableData": {
        "variables": {
          "y": 100,
          "x": 10
        }
      }
    },
    {
      "name": "projects/1051295516635/locations/us-central1/workflows/workflow-subworkflow-call/executions/e203bc96-a1cf-47ba-b6de-f3d1b0909664/stepEntries/3",
      "createTime": "2024-08-15T19:37:44.168659349Z",
      "updateTime": "2024-08-15T19:37:44.168676547Z",
      "routine": "square",
      "step": "retStep",
      "stepType": "STEP_RETURN",
      "state": "STATE_SUCCEEDED",
      "entryId": "3",
      "navigationInfo": {
        "parent": "1",
        "next": "4",
        "previous": "2"
      },
      "variableData": {
        "variables": {
          "x": 10,
          "y": 100
        }
      }
    },
    {
      "name": "projects/1051295516635/locations/us-central1/workflows/workflow-subworkflow-call/executions/e203bc96-a1cf-47ba-b6de-f3d1b0909664/stepEntries/4",
      "createTime": "2024-08-15T19:37:44.168693503Z",
      "updateTime": "2024-08-15T19:37:44.168702324Z",
      "routine": "main",
      "step": "retStep",
      "stepType": "STEP_RETURN",
      "state": "STATE_SUCCEEDED",
      "entryId": "4",
      "navigationInfo": {
        "previous": "3"
      },
      "variableData": {
        "variables": {
          "t": 100
        }
      }
    }
  ],
  "totalSize": 4
}

Flujo de trabajo con una entrada de paso fallido

Flujo de trabajo

YAML

- tryStep:
    try:
      return: ${1 / 0}
    except:
      return: 0

JSON

[
  {
    "tryStep": {
      "try": {
        "return": "${1 / 0}"
      },
      "except": {
        "return": 0
      }
    }
  }
]

Diagrama

Flujo de trabajo con una entrada de paso fallido
Imagen 3. Flujo de trabajo con una entrada de paso fallida (haz clic en el diagrama para ampliarlo).

Entradas de pasos

{
  "stepEntries": [
    {
      "name": "projects/1051295516635/locations/us-central1/workflows/workflow-failed-step/executions/a19d20d1-e446-4d37-b548-8005297b7d3d/stepEntries/1",
      "createTime": "2024-08-15T19:42:51.415433810Z",
      "updateTime": "2024-08-15T19:42:51.416106923Z",
      "routine": "main",
      "step": "tryStep",
      "stepType": "STEP_TRY_RETRY_EXCEPT",
      "state": "STATE_SUCCEEDED",
      "entryId": "1",
      "navigationInfo": {
        "children": [
          "2",
          "4"
        ],
        "next": "2"
      },
      "variableData": {}
    },
    {
      "name": "projects/1051295516635/locations/us-central1/workflows/workflow-failed-step/executions/a19d20d1-e446-4d37-b548-8005297b7d3d/stepEntries/2",
      "createTime": "2024-08-15T19:42:51.415439617Z",
      "updateTime": "2024-08-15T19:42:51.416065206Z",
      "routine": "main",
      "step": "tryStep",
      "stepType": "STEP_TRY",
      "state": "STATE_FAILED",
      "entryId": "2",
      "navigationInfo": {
        "children": [
          "3"
        ],
        "parent": "1",
        "next": "3",
        "previous": "1"
      },
      "variableData": {}
    },
    {
      "name": "projects/1051295516635/locations/us-central1/workflows/workflow-failed-step/executions/a19d20d1-e446-4d37-b548-8005297b7d3d/stepEntries/3",
      "createTime": "2024-08-15T19:42:51.415441815Z",
      "updateTime": "2024-08-15T19:42:51.416064665Z",
      "routine": "main",
      "step": "tryStep.try",
      "stepType": "STEP_RETURN",
      "state": "STATE_FAILED",
      "exception": {
        "payload": "{\"message\":\"ZeroDivisionError: division by zero\",\"tags\":[\"ZeroDivisionError\",\"ArithmeticError\"]}"
      },
      "entryId": "3",
      "navigationInfo": {
        "parent": "2",
        "next": "4",
        "previous": "2"
      },
      "variableData": {}
    },
    {
      "name": "projects/1051295516635/locations/us-central1/workflows/workflow-failed-step/executions/a19d20d1-e446-4d37-b548-8005297b7d3d/stepEntries/4",
      "createTime": "2024-08-15T19:42:51.416071869Z",
      "updateTime": "2024-08-15T19:42:51.416106840Z",
      "routine": "main",
      "step": "tryStep",
      "stepType": "STEP_EXCEPT",
      "state": "STATE_SUCCEEDED",
      "entryId": "4",
      "navigationInfo": {
        "children": [
          "5"
        ],
        "parent": "1",
        "next": "5",
        "previous": "3"
      },
      "variableData": {}
    },
    {
      "name": "projects/1051295516635/locations/us-central1/workflows/workflow-failed-step/executions/a19d20d1-e446-4d37-b548-8005297b7d3d/stepEntries/5",
      "createTime": "2024-08-15T19:42:51.416087217Z",
      "updateTime": "2024-08-15T19:42:51.416106742Z",
      "routine": "main",
      "step": "tryStep.except",
      "stepType": "STEP_RETURN",
      "state": "STATE_SUCCEEDED",
      "entryId": "5",
      "navigationInfo": {
        "parent": "4",
        "previous": "4"
      },
      "variableData": {}
    }
  ],
  "totalSize": 5
}

Siguientes pasos