Cómo ver el historial de los pasos de ejecución

Puedes recuperar el historial de la ejecución de un flujo de trabajo especificado como una lista de entradas de pasos. Cada entrada de paso proporciona información que puede ayudarte a analizar, depurar o optimizar un flujo de trabajo. Por ejemplo, puedes confirmar qué pasos se ejecutaron realmente y determinar la duración y el éxito de un paso. Esto puede ser especialmente útil cuando se depura 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 obtener una lista completa de los tipos de pasos, consulta StepType.

Nivel del historial de ejecución

Cuando creas o ejecutas un flujo de trabajo, puedes especificar un historial de ejecución Básico o Detallado. Puedes aplicar este parámetro de configuración a nivel del flujo de trabajo o de la ejecución.

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

Si deseas que el historial de ejecución incluya los valores de las variables dentro del alcance y, si corresponde, la cantidad esperada de iteraciones (por ejemplo, cuando se usa un bucle for o una rama o iteración paralela), debes establecer el nivel del historial de ejecución en Detallado.

Si no se especifica un nivel de historial de ejecución para una ejecución, se determina según el nivel aplicado al flujo de trabajo. Si los niveles son diferentes, el parámetro de configuración aplicado a nivel de la ejecución anula el parámetro de configuración aplicado a nivel del flujo de trabajo para esa ejecución.

Cómo recuperar entradas de pasos

Puedes recuperar entradas de pasos enviando una solicitud a la API de REST de Workflow Executions o a través de la consola de Google Cloud :

Información de entrada del paso

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

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

Información básica de entrada de pasos

Nombre Nombre completo del recurso de la entrada del paso, que es un ID único con el siguiente formato, en el que 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
Fechas y horas de creación y actualización Marcas de tiempo de la hora de creación de la entrada del paso y su actualización más reciente. Si se completó una entrada de paso, updateTime indica la hora de finalización.
Nombres de rutina y pasos Nombres de la rutina y el 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.
Tipo de estado y progreso Estado de la entrada del paso, por ejemplo, si la entrada se completó correctamente o falló, o si una entrada del paso está en curso y el tipo de progreso. Para obtener una lista completa de los estados y los tipos de progreso, consulta State y ProgressType.
Información de navegación

Posición de la entrada del paso para que puedas comprender 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 las entradas principales o secundarias de la entrada del paso.

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

Son los datos relacionados con una entrada de paso iterativo, que pueden incluir lo siguiente:

  • Es un ID que indica el subproceso secundario, por ejemplo, qué STEP_PARALLEL_BRANCH_ENTRY en STEP_PARALLEL_BRANCH
  • La iteración de un bucle for, por ejemplo, qué STEP_FOR_ITERATION en STEP_FOR
Para obtener más detalles, consulta StepEntryMetadata.
Excepciones Es la carga útil relacionada con cualquier excepción y que proporciona una descripción de por qué falló una entrada de paso.

Información detallada de la entrada de pasos

Metadatos

Si corresponde, es la cantidad esperada de iteraciones en el progreso del paso. Por ejemplo, cuando se usa un bucle for, una rama paralela o una iteración.

Ten en cuenta que el recuento calculado no funcionará según lo esperado si los límites del bucle incluyen expresiones que incorporan cualquiera de los siguientes elementos:

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

Datos relacionados con los valores de las variables dentro del alcance 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 alcance excluye las variables internas vinculadas a las funciones integradas de Workflows.

Para obtener más detalles, consulta VariableData.

Cómo ver las entradas de pasos en la consola

Puedes ver las entradas de pasos para una ejecución de flujo de trabajo específica en la consola deGoogle Cloud .

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

    Ir a Workflows

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

  3. Para obtener detalles sobre una ejecución en particular, haz clic en su ID.

    En la pestaña Resumen, se proporciona información sobre la ejecución general, incluida cualquier excepción que haya provocado la falla 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 enumeran todas las entradas de pasos para la ejecución del flujo de trabajo.

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

  6. Para mostrar los vínculos de las entradas de Parent, Children, Next y Previous, haz clic en una entrada de paso específica.

    Si haces clic en un vínculo, los demás se actualizarán automáticamente. Por ejemplo, Superior vinculará al elemento superior de la entrada del paso en la que hiciste clic.

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

    Ejemplo de panel de visualización

    Haz clic en el diagrama para agrandarlo:

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

    Ten en cuenta que la visualización puede diferir de las entradas de los pasos. Por ejemplo, un bloque for se representa como un solo componente en la visualización. Sin embargo, según la cantidad de iteraciones, puede haber varias entradas de pasos.

    En el panel, puedes hacer lo siguiente:

    • Acercar o alejar la visualización
    • Cómo contraer o expandir las entradas de pasos principales
    • Haz clic en una entrada de paso y ve sus entradas anterior y siguiente.
    • Confirma las entradas de los pasos correctos y fallidos, como lo indican una marca de verificación verde o un signo de exclamación rojo.
    • Cierra el panel Visualización haciendo clic en la flecha del expansor . Vuelve a hacer clic en ella para abrir el panel.

Antes de recuperar una entrada de paso

Para obtener los permisos que necesitas para recuperar una entrada de paso, pídele a tu administrador que te otorgue el rol de IAM de administrador de Workflows (workflows.stepEntries.get) en tu proyecto. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.

Recupera una entrada de paso

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

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_NUMBER: Es el número de tu proyecto Google Cloudque aparece en la página Configuración de IAM y administración.
  • LOCATION: la región en la que se implementa el flujo de trabajo, por ejemplo, us-central1.
  • WORKFLOW_ID: Es el nombre definido por el usuario para el flujo de trabajo, por ejemplo, myFirstWorkflow.
  • EXECUTION_ID: Es el ID único de una ejecución del flujo de trabajo que se devuelve después de que se ejecuta un flujo de trabajo.
  • STEPENTRY_ID: Es el ID único de una entrada de paso, por ejemplo, 1.

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "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 entradas de pasos, pídele a tu administrador que te otorgue el rol de IAM de administrador de Workflows (workflows.stepEntries.list) en tu proyecto. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.

Enumera las entradas de pasos

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

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_NUMBER: Es el número de tu proyecto Google Cloudque aparece en la página Configuración de IAM y administración.
  • LOCATION: la región en la que se implementa el flujo de trabajo, por ejemplo, us-central1.
  • WORKFLOW_ID: Es el nombre definido por el usuario para el flujo de trabajo, por ejemplo, myFirstWorkflow.
  • EXECUTION_ID: Es el ID único de una ejecución del flujo de trabajo que se devuelve después de que se ejecuta un flujo de trabajo.

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "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
}

Cómo borrar entradas de pasos

Para borrar 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 cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

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

Para enviar tu solicitud, expande una de estas opciones:

Si se ejecuta correctamente, el cuerpo de la respuesta está vacío.

Ejemplos

Flujo de trabajo con un bloque de 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
Figura 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 de 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 de subflujo de trabajo
Figura 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 fallida

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 fallida
Figura 3. Flujo de trabajo con una entrada de paso fallido (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
}

¿Qué sigue?