Afficher l'historique des étapes d'exécution

Vous pouvez récupérer l'historique d'une exécution de workflow spécifiée sous forme de liste d'entrées d'étapes. Chaque entrée d'étape fournit des informations qui peuvent vous aider à analyser, déboguer ou optimiser un workflow. Par exemple, vous pouvez confirmer les étapes réellement exécutées, et vous pouvez déterminer la durée et la réussite d'une étape. Cela peut s'avérer particulièrement utile lors du débogage d'un workflow non linéaire volumineux ou complexe (avec de nombreuses branches parallèles, par exemple).

Une entrée d'étape représente une étape réelle dans le code source (par exemple, assign ou call) ou un bloc d'instructions (par exemple, une boucle for ou un bloc try/retry/except). Pour obtenir la liste complète des types d'étapes, consultez la section StepType.

Niveau de détail de l'historique des exécutions

Lorsque vous créez ou exécutez un workflow, vous pouvez spécifier un historique d'exécution basique ou détaillé. Vous pouvez appliquer ce paramètre au niveau du workflow ou de l'exécution.

Par défaut, aucun niveau d'historique d'exécution n'est spécifié, et les entrées d'étape Standard sont renvoyées.

Si vous souhaitez que l'historique d'exécution inclue toutes les valeurs de variable dans le champ d'application et, le cas échéant, le nombre d'itérations attendu (par exemple, lorsque vous utilisez une boucle for, une branche ou une itération parallèle), vous devez définir le niveau de l'historique d'exécution sur Détaillé.

Si aucun niveau d'historique d'exécution n'est spécifié pour une exécution, il est déterminé par le niveau appliqué au workflow. Si les niveaux sont différents, le paramètre appliqué au niveau de l'exécution remplace le paramètre appliqué au niveau du workflow pour cette exécution.

Comment récupérer les entrées d'étape

Vous pouvez récupérer les entrées d'étape en envoyant une requête à l'API REST Workflow Executions ou via la console Google Cloud:

Informations sur l'entrée de l'étape

Une entrée d'étape comprend les informations suivantes : Les entrées d'étape détaillées incluent également les informations d'entrée d'étape de base.

Pour en savoir plus, consultez la section Exemples de ce document.

Informations de base sur l'entrée d'étape

Nom Nom de ressource complet de l'entrée d'étape, qui est un ID unique au format suivant, où STEPENTRY_ID est un compteur croissant:
projects/PROJECT_NUMBER/locations/LOCATION/workflows/WORKFLOW_ID/executions/EXECUTION_ID/stepEntries/STEPENTRY_ID
Exemple:
projects/123456789012/locations/us-central1/workflows/myFirstWorkflow/executions/ae8a66a1-cefa-4d16-8a2f-d50c712d8ef1/stepEntries/2
Créer et mettre à jour des horaires Codes temporels de la date et de l'heure de création de l'entrée d'étape et de sa dernière mise à jour. Si une entrée d'étape est terminée, updateTime indique l'heure de fin.
Noms de la routine et des étapes Noms de la routine et de l'étape auxquelles l'entrée d'étape appartient. Un nom de routine est le nom du sous-workflow défini dans le code source YAML ou JSON. Le nom de la routine de premier niveau est main.
État et type de progression État de l'entrée d'étape (par exemple, si l'entrée a réussi ou échoué, ou si une entrée d'étape est en cours et le type de progression) Pour obtenir la liste complète des états et des types de progression, consultez les sections État et ProgressType.
Informations de navigation

Position de l'entrée d'étape afin que vous puissiez mieux comprendre la hiérarchie et le flux du workflow (par exemple, quelles entrées d'étapes se trouvent avant ou après l'entrée d'étape actuelle, ou lesquelles sont des parents ou des enfants de l'entrée d'étape).

Pour en savoir plus, consultez NavigationInfo.
Métadonnées

Données liées à une entrée d'étape itérée, qui peuvent inclure les éléments suivants:

  • ID indiquant le thread enfant (par exemple, STEP_PARALLEL_BRANCH_ENTRY dans STEP_PARALLEL_BRANCH)
  • Itération d'une boucle for (par exemple, STEP_FOR_ITERATION dans STEP_FOR)
Pour en savoir plus, consultez StepEntryMetadata.
Exceptions Charge utile liée à des exceptions et qui fournit une description de la raison pour laquelle une entrée d'étape a échoué.

Informations détaillées sur l'entrée d'étape

Métadonnées

Le cas échéant, le nombre d'itérations prévu dans la progression de l'étape (par exemple, lorsque vous utilisez une boucle for, une branche parallèle ou une itération).

Notez que le nombre calculé ne fonctionnera pas comme prévu si les limites de la boucle incluent des expressions qui intègrent l'un des éléments suivants:

  • Profondeur d'expression imbriquée supérieure à 10
  • Fonctions intégrées autres que len()
  • Évaluations impliquant des valeurs telles que .inf, -.inf, .NAN, Infinity ou -Infinity
  • Erreurs
Pour en savoir plus, consultez StepEntryMetadata.
Données variables

Données liées aux valeurs de variable dans le champ d'application associées à cette étape, y compris les noms et les valeurs des variables locales définies par l'utilisateur, ainsi que les résultats des évaluations d'expressions.

Notez que le champ d'application exclut les variables internes associées aux fonctions intégrées de Workflows.

Pour en savoir plus, consultez VariableData.

Afficher les entrées d'étape dans la console

Vous pouvez afficher les entrées d'étapes pour une exécution de workflow spécifique dans la console Google Cloud.

  1. Dans la console Google Cloud, accédez à la page Workflows :

    Accéder à "Workflows"

  2. Cliquez sur le nom du workflow pour accéder à sa page Détails du workflow.

  3. Pour en savoir plus sur une exécution spécifique, cliquez sur son ID.

    Dans l'onglet Récapitulatif, des informations sur l'exécution globale sont fournies, y compris toute exception ayant entraîné l'échec de l'exécution. Pour en savoir plus, consultez la section Cartes des erreurs d'exécution.

  4. Pour afficher l'historique d'exécution du workflow sous forme de liste d'entrées d'étapes, cliquez sur l'onglet Étapes.

    Toutes les entrées d'étapes de l'exécution du workflow sont listées.

  5. Pour filtrer les entrées d'étape, utilisez le champ Filtrer en haut du tableau pour sélectionner une propriété et une valeur (par exemple, State: Failed).

  6. Pour afficher les liens vers les entrées Parent, Enfants, Suivante et Précédente, cliquez sur une entrée d'étape spécifique.

    Si vous cliquez sur un lien, les autres liens sont automatiquement mis à jour. Par exemple, Parent vous permet d'accéder à l'élément parent de l'entrée d'étape sur laquelle vous avez cliqué.

  7. Le panneau Visualisation fournit une représentation graphique des étapes du workflow et vous aide à comprendre le chemin du workflow.

    Exemple de panneau de visualisation

    Cliquez sur le schéma pour l'agrandir:

    Panneau de visualisation affichant un workflow avec des étapes ayant échoué

    Notez que la visualisation peut différer des entrées d'étapes. Par exemple, un bloc for est représenté comme un seul composant dans la visualisation. Toutefois, en fonction du nombre d'itérations, il peut y avoir plusieurs entrées d'étapes.

    Vous pouvez effectuer les opérations suivantes dans le panneau:

    • Faire un zoom avant ou arrière sur la visualisation
    • Réduire ou développer les entrées de l'étape parent
    • Cliquez sur une entrée d'étape et affichez les entrées précédentes et suivantes
    • Vérifiez que les entrées des étapes réussies et échouées sont indiquées par une coche verte ou un point d'exclamation rouge.
    • Fermez le panneau Visualisation en cliquant sur la flèche d'expansion . Cliquez de nouveau dessus pour ouvrir le panneau.

Avant de récupérer une entrée d'étape

Pour obtenir les autorisations nécessaires pour récupérer une entrée d'étape, demandez à votre administrateur de vous accorder le rôle IAM Administrateur de workflow (workflows.stepEntries.get) sur votre projet. Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.

Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.

Récupérer une entrée d'étape

Pour récupérer une entrée d'étape pour une exécution de workflow donnée, utilisez la méthode projects.locations.workflows.executions.stepEntries.get.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • PROJECT_NUMBER: numéro de votre projet Google Cloudrépertorié sur la page IAM et paramètres d'administration.
  • LOCATION: région dans laquelle le workflow est déployé (par exemple, us-central1).
  • WORKFLOW_ID: nom défini par l'utilisateur pour le workflow (par exemple, myFirstWorkflow).
  • EXECUTION_ID: ID unique d'une exécution de workflow renvoyé après l'exécution d'un workflow.
  • STEPENTRY_ID: ID unique d'une entrée d'étape (par exemple, 1).

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

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

Avant de lister les entrées de la procédure

Pour obtenir les autorisations nécessaires pour lister les entrées d'étapes, demandez à votre administrateur de vous accorder le rôle IAM administrateur des workflows (workflows.stepEntries.list) sur votre projet. Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.

Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.

Lister les entrées d'étape

Pour répertorier les entrées d'étapes d'une exécution de workflow donnée, utilisez la méthode projects.locations.workflows.executions.stepEntries.list. Par défaut, les résultats sont renvoyés par ordre croissant de l'createTime des entrées d'étape.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • PROJECT_NUMBER: numéro de votre projet Google Cloudrépertorié sur la page IAM et paramètres d'administration.
  • LOCATION: région dans laquelle le workflow est déployé (par exemple, us-central1).
  • WORKFLOW_ID: nom défini par l'utilisateur pour le workflow (par exemple, myFirstWorkflow).
  • EXECUTION_ID: ID unique d'une exécution de workflow renvoyé après l'exécution d'un workflow.

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

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

Supprimer des entrées d'étape

Pour supprimer toutes les entrées d'étapes d'une exécution de workflow donnée, utilisez la méthode projects.locations.workflows.executions.deleteExecutionHistory.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • WORKFLOW_NAME: nom du workflow.
  • PROJECT_NUMBER: votre numéro de projet Google Cloud.
  • LOCATION: région dans laquelle le workflow est déployé (par exemple, us-central1).
  • EXECUTION_ID: ID de l'exécution pour laquelle les entrées d'étape doivent être supprimées.

Pour envoyer votre requête, développez l'une des options suivantes :

Si la requête aboutit, le corps de la réponse est vide.

Examples

Workflow avec un bloc for

Workflow

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

Diagramme

Workflow avec un bloc "for"
Figure 1. Workflow avec un bloc for (cliquez sur le diagramme pour l'agrandir).

Entrées d'étape

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

Workflow avec un appel de sous-workflow

Workflow

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

Diagramme

Workflow avec un appel de sous-workflow
Figure 2. Workflow avec un appel de sous-workflow (cliquez sur le diagramme pour l'agrandir).

Entrées d'étape

{
  "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 avec une entrée d'étape en échec

Workflow

YAML

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

JSON

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

Diagramme

Workflow avec une entrée d'étape en échec
Figure 3. Workflow avec une entrée d'étape ayant échoué (cliquez sur le diagramme pour l'agrandir).

Entrées d'étape

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

Étape suivante