Conferir o histórico das etapas de execução

É possível recuperar o histórico de uma execução de fluxo de trabalho especificada como uma lista de entradas de etapas. Cada entrada de etapa fornece informações que podem ajudar você a analisar, depurar ou otimizar um fluxo de trabalho. Por exemplo, é possível confirmar quais etapas foram executadas e determinar a duração e o sucesso de uma etapa. Isso pode ser útil ao depurar um fluxo de trabalho não linear grande ou complicado (um com muitas ramificações paralelas, por exemplo).

Uma entrada de etapa representa uma etapa real no código-fonte (por exemplo, assign ou call) ou um bloco de instruções (por exemplo, um loop for ou um bloco try/retry/except). Para conferir uma lista completa de tipos de etapa, consulte StepType.

Nível do histórico de execução

Ao criar ou executar um fluxo de trabalho, é possível especificar um histórico de execução básico ou detalhado. É possível aplicar essa configuração no nível do fluxo de trabalho ou da execução.

Por padrão, nenhum nível de histórico de execução é especificado, e as entradas de etapa Básica são retornadas.

Se você quiser que o histórico de execução inclua valores de variáveis no escopo e, se aplicável, o número esperado de iterações (por exemplo, ao usar um loop for ou uma ramificação ou iteração paralela), defina o nível do histórico de execução como Detalhista.

Se um nível de histórico de execução não for especificado para uma execução, ele será determinado pelo nível aplicado ao fluxo de trabalho. Se os níveis forem diferentes, a configuração aplicada no nível de execução vai substituir a configuração aplicada no nível do fluxo de trabalho para essa execução.

Como recuperar entradas de etapas

É possível recuperar as entradas de etapas enviando uma solicitação para a API REST de execuções de fluxo de trabalho ou pelo console do Google Cloud:

Informações da entrada da etapa

Uma entrada de etapa inclui as seguintes informações. As entradas de etapas detalhadas também incluem as informações básicas da entrada de etapas.

Para mais informações, consulte os exemplos neste documento.

Informações básicas da entrada de etapa

Nome O nome completo do recurso da entrada de etapa, que é um ID exclusivo com o seguinte formato, em que STEPENTRY_ID é um contador crescente:
projects/PROJECT_NUMBER/locations/LOCATION/workflows/WORKFLOW_ID/executions/EXECUTION_ID/stepEntries/STEPENTRY_ID
Por exemplo:
projects/123456789012/locations/us-central1/workflows/myFirstWorkflow/executions/ae8a66a1-cefa-4d16-8a2f-d50c712d8ef1/stepEntries/2
Criar e atualizar horários Carimbos de data/hora da criação da entrada de etapa e da atualização mais recente. Se uma entrada de etapa foi concluída, updateTime indica o tempo de conclusão.
Nomes de rotinas e etapas Nomes da rotina e da etapa a que a entrada de etapa pertence. Um nome de rotina é o nome do subfluxo de trabalho definido no código-fonte YAML ou JSON. O nome da rotina de nível superior é main.
Estado e tipo de progresso Estado da entrada da etapa. Por exemplo, se a entrada teve sucesso ou falha, ou se uma entrada de etapa está em andamento e o tipo de progresso. Para uma lista completa de estados e tipos de progresso, consulte Estado e ProgressType.
Informações de navegação

Posição da entrada da etapa para que você possa entender melhor a hierarquia e o fluxo do fluxo de trabalho. Por exemplo, quais entradas de etapa vêm antes ou depois da entrada atual ou quais são pais ou filhos da entrada da etapa.

Para mais detalhes, consulte NavigationInfo.
Metadados

Dados relacionados a uma entrada de etapa iterativa, que pode incluir o seguinte:

  • Um ID que indica a linha de execução filha, por exemplo, STEP_PARALLEL_BRANCH_ENTRY em STEP_PARALLEL_BRANCH
  • A iteração de um loop for, por exemplo, que STEP_FOR_ITERATION em STEP_FOR
Para mais detalhes, consulte StepEntryMetadata.
Exceções Payload relacionado a qualquer exceção e que fornece uma descrição do motivo da falha de uma entrada de etapa.

Informações detalhadas sobre a entrada da etapa

Metadados

Se aplicável, o número esperado de iterações no progresso da etapa. Por exemplo, ao usar um loop for, uma ramificação paralela ou uma iteração.

A contagem calculada não vai funcionar como esperado se os limites do loop incluírem expressões que incorporam qualquer um dos seguintes:

  • Uma profundidade de expressão aninhada que excede 10
  • Funções integradas diferentes de len()
  • Avaliações que envolvem valores como .inf, -.inf, .NAN, Infinity ou -Infinity
  • Erros
Para mais detalhes, consulte StepEntryMetadata.
Dados variáveis

Dados relacionados aos valores de variáveis no escopo associados a esta etapa, incluindo os nomes e valores de variáveis locais definidos pelo usuário e os resultados das avaliações de expressões.

O escopo exclui variáveis internas vinculadas às funções integradas do Workflows.

Para mais detalhes, consulte VariableData.

Conferir as entradas de etapas no console

É possível conferir as entradas de etapa de uma execução de fluxo de trabalho específica no console do Google Cloud.

  1. No console do Google Cloud, abra a página Workflows.

    Acessar fluxos de trabalho

  2. Clique no nome do fluxo de trabalho para acessar a página Detalhes do fluxo de trabalho.

  3. Para detalhes sobre uma execução específica, clique no ID dela.

    Na guia Resumo, são fornecidas informações sobre a execução geral, incluindo qualquer exceção que levou à falha da execução. Para mais informações, consulte Mapas de erros de execução.

  4. Para conferir o histórico de execução do fluxo de trabalho como uma lista de entradas de etapas, clique na guia Etapas.

    Todas as entradas de etapa para a execução do fluxo de trabalho são listadas.

  5. Para filtrar as entradas de etapas, use o campo Filtro na parte de cima da tabela para selecionar uma propriedade e um valor, por exemplo, State: Failed.

  6. Para mostrar links para qualquer entrada de etapa Pai, Filhos, Próxima e Anterior, clique em uma entrada de etapa específica.

    Se você clicar em um link, os outros links serão atualizados automaticamente. Por exemplo, Pai vai vincular à entrada de etapa que você clicou.

  7. O painel Visualização fornece uma representação gráfica das etapas do fluxo de trabalho e ajuda a entender o caminho do fluxo de trabalho.

    Exemplo de painel de visualização

    Clique no diagrama para ampliar:

    Painel de visualização mostrando o fluxo de trabalho com etapas com falha

    A visualização pode ser diferente das entradas de etapa. Por exemplo, um bloco for é representado como um único componente na visualização. No entanto, dependendo do número de iterações, pode haver várias entradas de etapas.

    Você pode fazer o seguinte no painel:

    • Aumentar ou diminuir o zoom da visualização
    • Recolher ou expandir as entradas de etapas principais
    • Clique em uma entrada de etapa e confira as entradas anteriores e seguintes
    • Confirme as entradas de etapas bem-sucedidas e com falha, conforme indicado por uma marca de seleção verde ou um ponto de exclamação vermelho.
    • Feche o painel Visualização clicando na seta de expansão . Clique nela novamente para abrir o painel.

Antes de recuperar uma entrada de etapa

Para receber as permissões necessárias para recuperar uma entrada de etapa, peça ao administrador para conceder a você o papel do IAM de administrador de fluxos de trabalho (workflows.stepEntries.get) no seu projeto. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Também é possível conseguir as permissões necessárias por meio de papéis personalizados ou de outros papéis predefinidos.

Recuperar uma entrada de etapa

Para recuperar uma entrada de etapa para uma determinada execução de fluxo de trabalho, use o método projects.locations.workflows.executions.stepEntries.get.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_NUMBER: o número do projeto Google Cloud listado na página Configurações do IAM e Admin.
  • LOCATION: a região em que o fluxo de trabalho é implantado, por exemplo, us-central1.
  • WORKFLOW_ID: o nome definido pelo usuário para o fluxo de trabalho. Por exemplo, myFirstWorkflow.
  • EXECUTION_ID: o ID exclusivo de uma execução de fluxo de trabalho que é retornado após a execução de um fluxo de trabalho.
  • STEPENTRY_ID: o ID exclusivo de uma inserção de etapa, por exemplo, 1.

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

{
  "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 listar as entradas de etapas

Para receber as permissões necessárias para listar as entradas de etapas, peça ao administrador para conceder a você o papel do IAM de Administrador de fluxos de trabalho (workflows.stepEntries.list) no seu projeto. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Também é possível conseguir as permissões necessárias por meio de papéis personalizados ou de outros papéis predefinidos.

Listar entradas de etapas

Para listar as entradas de etapa de uma determinada execução de fluxo de trabalho, use o método projects.locations.workflows.executions.stepEntries.list. Por padrão, os resultados são retornados em ordem crescente do createTime das entradas de etapa.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_NUMBER: o número do projeto Google Cloud listado na página Configurações do IAM e Admin.
  • LOCATION: a região em que o fluxo de trabalho é implantado, por exemplo, us-central1.
  • WORKFLOW_ID: o nome definido pelo usuário para o fluxo de trabalho. Por exemplo, myFirstWorkflow.
  • EXECUTION_ID: o ID exclusivo de uma execução de fluxo de trabalho que é retornado após a execução de um fluxo de trabalho.

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

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

Excluir entradas de etapas

Para excluir todas as entradas de etapa de uma determinada execução de fluxo de trabalho, use o método projects.locations.workflows.executions.deleteExecutionHistory.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • WORKFLOW_NAME: o nome do fluxo de trabalho.
  • PROJECT_NUMBER: o número do projeto Google Cloud.
  • LOCATION: a região em que o fluxo de trabalho é implantado, por exemplo, us-central1.
  • EXECUTION_ID: o ID da execução para as entradas de etapa que precisam ser excluídas.

Para enviar a solicitação, expanda uma destas opções:

Se a solicitação for concluída, o corpo da resposta estará vazio.

Exemplos

Fluxo de trabalho com um bloco for

Fluxo de trabalho

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

Fluxo de trabalho com um bloco for
Figura 1. Fluxo de trabalho com um bloco for (clique no diagrama para ampliar).

Entradas de etapas

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

Fluxo de trabalho com uma chamada de subfluxo de trabalho

Fluxo de trabalho

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

Fluxo de trabalho com uma chamada de subfluxo de trabalho
Figura 2. Fluxo de trabalho com uma chamada de subfluxo de trabalho (clique no diagrama para ampliar).

Entradas de etapas

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

Fluxo de trabalho com uma entrada de etapa com falha

Fluxo de trabalho

YAML

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

JSON

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

Diagrama

Fluxo de trabalho com uma entrada de etapa com falha
Figura 3. Fluxo de trabalho com uma entrada de etapa com falha (clique no diagrama para ampliar).

Entradas de etapas

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

A seguir