Visualizzare la cronologia dei passaggi di esecuzione

Puoi recuperare la cronologia di un'esecuzione del flusso di lavoro specificato come elenco di voci di passaggio. Ogni voce del passaggio fornisce informazioni che possono aiutarti ad analizzare, eseguire il debug o ottimizzare un flusso di lavoro. Ad esempio, puoi confermare quali passaggi sono stati eseguiti e determinare la durata e l'esito di un passaggio. Ciò può essere particolarmente utile per il debug di un flusso di lavoro non lineare grande o complicato (ad esempio, uno con molti rami paralleli).

Una voce di passaggio rappresenta un passaggio effettivo nel codice sorgente (ad esempio, assign o call) o un blocco di istruzioni (ad esempio, un ciclo for o un blocco try/retry/except). Per un elenco completo dei tipi di passaggi, consulta StepType.

Livello della cronologia di esecuzione

Quando crei o esegui un flusso di lavoro, puoi specificare una cronologia di esecuzione di base o dettagliata. Puoi applicare questa impostazione a livello di flusso di lavoro o di esecuzione.

Per impostazione predefinita, non viene specificato alcun livello della cronologia di esecuzione e vengono restituite le voci di passaggio di base.

Se vuoi che la cronologia di esecuzione includa i valori delle variabili nell'ambito e, se applicabile, il numero previsto di iterazioni (ad esempio, quando utilizzi un ciclo for o un ramo o un'iterazione paralleli), devi impostare il livello della cronologia di esecuzione su Dettagliata.

Se per un'esecuzione non viene specificato un livello della cronologia di esecuzione, questo viene determinato dal livello applicato al workflow. Se i livelli sono diversi, l'impostazione applicata a livello di esecuzione sostituisce l'impostazione applicata a livello di workflow per l'esecuzione.

Come recuperare le voci dei passi

Puoi recuperare le voci dei passaggi inviando una richiesta all'API REST Workflow Executions o tramite la console Google Cloud :

Informazioni sulla voce del passo

Una voce di passo include le seguenti informazioni. Le voci dettagliate dei passi includono anche le informazioni di base.

Per saperne di più, consulta la sezione Esempi di questo documento.

Informazioni di base sull'inserimento dei passi

Nome Nome della risorsa completo della voce del passaggio, che è un ID univoco con il seguente formato, dove STEPENTRY_ID è un contatore crescente:
projects/PROJECT_NUMBER/locations/LOCATION/workflows/WORKFLOW_ID/executions/EXECUTION_ID/stepEntries/STEPENTRY_ID
Ad esempio:
projects/123456789012/locations/us-central1/workflows/myFirstWorkflow/executions/ae8a66a1-cefa-4d16-8a2f-d50c712d8ef1/stepEntries/2
Creazione e aggiornamento degli orari Timestamp dell'ora di creazione della voce del passaggio e del suo ultimo aggiornamento. Se una voce del passaggio è stata completata, updateTime indica l'ora di completamento.
Nomi di routine e passaggi I nomi della routine e del passaggio a cui appartiene la voce del passaggio. Il nome di una routine è il nome del subworkflow definito nel codice sorgente YAML o JSON. Il nome della routine di primo livello è main.
Stato e tipo di avanzamento Stato della voce del passaggio, ad esempio se l'operazione è riuscita o non è riuscita oppure se una voce del passaggio è in corso e il tipo di avanzamento. Per un elenco completo di stati e tipi di avanzamento, consulta State e ProgressType.
Informazioni di navigazione

Posizione della voce del passaggio in modo da poter comprendere meglio la gerarchia e il flusso del flusso di lavoro, ad esempio quali voci del passaggio vengono prima o dopo la voce del passaggio corrente o quali sono genitori o figli della voce del passaggio.

Per maggiori dettagli, vedi NavigationInfo.
Metadati

Dati relativi a una voce di passaggio iterativo, che possono includere quanto segue:

  • Un ID che indica il thread secondario, ad esempio quale STEP_PARALLEL_BRANCH_ENTRY in STEP_PARALLEL_BRANCH
  • L'iterazione di un ciclo for, ad esempio quale STEP_FOR_ITERATION in STEP_FOR
Per maggiori dettagli, vedi StepEntryMetadata.
Eccezioni Payload relativo a eventuali eccezioni e che fornisce una descrizione del motivo per cui una voce di passaggio non è riuscita.

Informazioni dettagliate sull'inserimento dei passi

Metadati

Se applicabile, il numero previsto di iterazioni nell'avanzamento del passaggio, ad esempio quando si utilizza un ciclo for, un ramo parallelo o un'iterazione.

Tieni presente che il conteggio calcolato non funzionerà come previsto se i limiti del ciclo includono espressioni che incorporano uno dei seguenti elementi:

  • Una profondità dell'espressione nidificata superiore a 10
  • Funzioni integrate diverse da len()
  • Valutazioni che includono valori come .inf, -.inf, .NAN, Infinity o -Infinity
  • Errori
Per maggiori dettagli, vedi StepEntryMetadata.
Dati variabili

Dati relativi ai valori delle variabili incluse nell'ambito associati a questo passaggio, inclusi i nomi e i valori delle variabili locali definite dall'utente e i risultati delle valutazioni delle espressioni.

Tieni presente che l'ambito esclude le variabili interne collegate alle funzioni integrate di Workflows.

Per maggiori dettagli, vedi VariableData.

Visualizzare le voci dei passaggi nella console

Puoi visualizzare le voci dei passaggi per una specifica esecuzione del flusso di lavoro nella consoleGoogle Cloud .

  1. Nella console Google Cloud , vai alla pagina Workflows.

    Vai a Flussi di lavoro

  2. Fai clic sul nome del flusso di lavoro per accedere alla pagina Dettagli del flusso di lavoro.

  3. Per visualizzare i dettagli di una determinata esecuzione, fai clic sul relativo ID esecuzione.

    Nella scheda Riepilogo vengono fornite informazioni sull'esecuzione complessiva, inclusa qualsiasi eccezione che ha causato l'errore di esecuzione. Per ulteriori informazioni, vedi Mappe degli errori di esecuzione.

  4. Per visualizzare la cronologia di esecuzione del flusso di lavoro come elenco di voci di passaggi, fai clic sulla scheda Passaggi.

    Vengono elencate tutte le voci dei passaggi per l'esecuzione del workflow.

  5. Per filtrare le voci dei passaggi, utilizza il campo Filtro nella parte superiore della tabella per selezionare una proprietà e un valore, ad esempio State: Failed.

  6. Per visualizzare i link per le voci dei passaggi Genitore, Figli, Successivo e Precedente, fai clic su una voce di passaggio specifica.

    Se fai clic su un link, gli altri vengono aggiornati automaticamente. Ad esempio, Genitore rimanda al genitore della voce del passaggio su cui hai fatto clic.

  7. Il riquadro Visualizzazione fornisce una rappresentazione grafica dei passaggi del workflow e ti aiuta a comprenderne il percorso.

    Esempio di pannello di visualizzazione

    Fai clic sul diagramma per ingrandirlo:

    Il riquadro di visualizzazione mostra il flusso di lavoro con i passaggi non riusciti

    Tieni presente che la visualizzazione può differire dalle voci dei passi. Ad esempio, un blocco for è rappresentato come un singolo componente nella visualizzazione; tuttavia, a seconda del numero di iterazioni, possono essere presenti più voci di passaggi.

    Nel riquadro puoi:

    • Aumentare o diminuire lo zoom della visualizzazione
    • Comprimi o espandi le voci dei passaggi principali
    • Fai clic su una voce del passo e visualizza le voci precedenti e successive
    • Conferma le voci dei passaggi riusciti e non riusciti indicate da un segno di spunta verde o da un punto esclamativo rosso
    • Chiudi il riquadro Visualizzazione facendo clic sulla freccia di espansione ; fai di nuovo clic per aprire il riquadro.

Prima di recuperare una voce di passo

Per ottenere le autorizzazioni necessarie per recuperare una voce di passaggio, chiedi all'amministratore di concederti il ruolo IAM Amministratore flussi di lavoro (workflows.stepEntries.get) nel progetto. Per saperne di più sull'assegnazione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Recuperare una voce di passo

Per recuperare una voce di passaggio per una determinata esecuzione del flusso di lavoro, utilizza il metodo projects.locations.workflows.executions.stepEntries.get.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_NUMBER: il tuo Google Cloud numero di progetto elencato nella pagina Impostazioni IAM e amministrazione.
  • LOCATION: la regione in cui viene eseguito il deployment del flusso di lavoro, ad esempio us-central1.
  • WORKFLOW_ID: il nome definito dall'utente per il workflow, ad esempio myFirstWorkflow.
  • EXECUTION_ID: l'ID univoco per un'esecuzione del workflow restituito dopo l'esecuzione di un workflow.
  • STEPENTRY_ID: l'ID univoco di una voce di passo, ad esempio 1.

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

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

Prima di elencare le voci dei passi

Per ottenere le autorizzazioni necessarie per elencare le voci dei passaggi, chiedi all'amministratore di concederti il ruolo IAM Amministratore flussi di lavoro (workflows.stepEntries.list) nel progetto. Per saperne di più sull'assegnazione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Elenco delle voci dei passaggi

Per elencare le voci dei passaggi per una determinata esecuzione del flusso di lavoro, utilizza il metodo projects.locations.workflows.executions.stepEntries.list. Per impostazione predefinita, i risultati vengono restituiti in ordine crescente di createTime delle voci dei passaggi.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_NUMBER: il tuo Google Cloud numero di progetto elencato nella pagina Impostazioni IAM e amministrazione.
  • LOCATION: la regione in cui viene eseguito il deployment del flusso di lavoro, ad esempio us-central1.
  • WORKFLOW_ID: il nome definito dall'utente per il workflow, ad esempio myFirstWorkflow.
  • EXECUTION_ID: l'ID univoco per un'esecuzione del workflow restituito dopo l'esecuzione di un workflow.

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

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

Elimina le voci dei passi

Per eliminare tutte le voci dei passaggi per una determinata esecuzione del flusso di lavoro, utilizza il metodo projects.locations.workflows.executions.deleteExecutionHistory.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • WORKFLOW_NAME: il nome del workflow.
  • PROJECT_NUMBER: il tuo Google Cloud numero di progetto.
  • LOCATION: la regione in cui viene eseguito il deployment del workflow, ad esempio us-central1.
  • EXECUTION_ID: l'ID dell'esecuzione per cui devono essere eliminate le voci dei passaggi.

Per inviare la richiesta, espandi una di queste opzioni:

In caso di esito positivo, il corpo della risposta è vuoto.

Esempi

Flusso di lavoro con un blocco for

Flusso di lavoro

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

Diagramma

Flusso di lavoro con un blocco for
Figura 1. Flusso di lavoro con un blocco for (fai clic sul diagramma per ingrandirlo).

Voci del passaggio

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

Flusso di lavoro con una chiamata al flusso di lavoro secondario

Flusso di lavoro

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

Diagramma

Flusso di lavoro con una chiamata al flusso di lavoro secondario
Figura 2. Workflow con una chiamata al flusso di lavoro secondario (fai clic sul diagramma per ingrandirlo).

Voci del passaggio

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

Workflow con una voce di passaggio non riuscita

Flusso di lavoro

YAML

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

JSON

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

Diagramma

Workflow con una voce di passaggio non riuscita
Figura 3. Flusso di lavoro con una voce di passaggio non riuscita (fai clic sul diagramma per ingrandirlo).

Voci del passaggio

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

Passaggi successivi