Sie können den Verlauf einer bestimmten Workflowausführung als Liste mit Schritten abrufen: . Jeder Schritt enthält Informationen, die Sie bei der Analyse, Debugging oder Optimieren eines Workflows. So können Sie z. B. festlegen, ausgeführt wird und Sie die Dauer und den Erfolg eines Schritts bestimmen können. Das kann besonders hilfreich sein, wenn ein großer oder komplizierter nicht linearer Workflow (z. B. mit vielen parallelen Verzweigungen) debuggt wird.
Ein Schritteintrag stellt entweder einen tatsächlichen Schritt im Quellcode dar (z. B.
assign
oder call
) oder einen Anweisungsblock (z. B. eine for
-Schleife oder ein
Block try/retry/except
). Eine vollständige Liste der Schritttypen finden Sie unter StepType.
Schritteinträge abrufen
Sie können Schritteinträge abrufen, indem Sie eine Anfrage an den Workflow senden Executions REST API oder über die Google Cloud Console:
Google Cloud Console: In diesem Dokument finden Sie unter Sehen Sie sich Schritteinträge in der Console an.
Neben der Auflistung der Schritteinträge und der zugehörigen Details eine grafische Darstellung der Ausführungsschritte, um den Pfad einer Workflowausführung anzuzeigen und zu analysieren.
REST API für Workflowausführungen – in diesem Dokument finden Sie unter Schritteintrag abrufen und Schritteinträge auflisten
Informationen zum Schritteintrag
Ein Schritteintrag enthält die folgenden Informationen. Weitere Informationen finden Sie in diesem finden Sie unter Beispiele.
Name | Vollständiger Ressourcenname des Schritteintrags, bei dem es sich um eine eindeutige ID mit dem
Format und wobei STEPENTRY_ID ein
ansteigender Zähler:
|
Erstellungs- und Aktualisierungszeiten | Zeitstempel für die Erstellungszeit des Schritteintrags und den jüngsten
aktualisieren. Wenn ein Schritt abgeschlossen ist, gibt updateTime an,
Fertigstellungszeit angezeigt.
|
Namen von Abläufen und Schritten | Namen des Ablaufs und des Schritts, zu dem der Schritteintrag gehört. A
Der Routinename ist der Name des Subworkflows, der in der YAML- oder JSON-Quelle definiert ist.
Code. Der Name des Ablaufs auf oberster Ebene lautet main .
|
Status und Fortschrittstyp | Status des Schritteintrags, z. B. ob der Eintrag erfolgreich war oder fehlgeschlagen ist oder ob ein Schritteintrag gerade ausgeführt wird und die Art des Fortschritts angegeben ist. Für eine vollständige Liste der Status und Fortschrittstypen finden Sie unter Bundesstaat/-land und ProgressType. |
Navigationsinformationen | Die Position des Schritteintrags, damit Sie die Hierarchie und den Ablauf des Workflows besser nachvollziehen können, z. B. welche Schritteinträge vor oder nach dem aktuellen Schritteintrag kommen oder welche über- oder untergeordnet sind. Weitere Informationen finden Sie unter NavigationInfo: |
Metadaten | Daten, die sich auf einen iterativen Schritteintrag beziehen, einschließlich einer ID, die
gibt den untergeordneten Thread an (z. B.
STEP_PARALLEL_BRANCH_ENTRY Zoll
STEP_PARALLEL_BRANCH ) oder die Iteration eines for
Schleife (z. B. die STEP_FOR_ITERATION in
STEP_FOR . Weitere Informationen finden Sie unter
StepEntryMetadata.
|
Ausnahmen | Nutzlast, die sich auf Ausnahmen bezieht und eine Beschreibung der warum ein Schritteintrag fehlgeschlagen ist. |
Schritteinträge in der Konsole ansehen
Sie können die Schritteinträge für eine bestimmte Workflowausführung in der Google Cloud Console
Öffnen Sie in der Google Cloud Console die Seite Workflows.
Klicken Sie auf den Namen des Workflows, um die zugehörige Seite Workflowdetails aufzurufen.
Wenn Sie Details zu einer bestimmten Ausführung aufrufen möchten, klicken Sie auf die entsprechende Ausführungs-ID.
Auf dem Tab Zusammenfassung finden Sie Informationen zur gesamten Ausführung, einschließlich aller Ausnahmen, die zum Fehler geführt haben. Weitere Informationen finden Sie unter Fehlermeldungen bei der Ausführung:
Um den Workflowausführungsverlauf als Liste von Schritteinträgen anzuzeigen, klicken Sie auf das Schritte.
Alle Schritteinträge für die Workflowausführung werden aufgelistet.
Verwenden Sie zum Filtern der Schritteinträge das Feld Filter oben im , um eine Eigenschaft und einen Wert auszuwählen, z. B.
State: Failed
.Links für alle übergeordneten Elemente, untergeordneten Elemente, Weiter und Vorherigen anzeigen auf einen bestimmten Schritt.
Wenn Sie auf einen Link klicken, werden die anderen Links automatisch aktualisiert. Beispiel: Übergeordnet ist ein Link zum übergeordneten Element des Schritteintrags, auf den Sie geklickt haben.
Im Bereich Visualisierung finden Sie eine grafische Darstellung der Schritte im Workflow, die Ihnen dabei helfen, den Workflowpfad zu verstehen.
Beachten Sie, dass sich die Visualisierung von den Schritteinträgen unterscheiden kann. Beispiel: Der
for
-Block wird als einzelne Komponente in der Visualisierung dargestellt. Allerdings Je nach Anzahl der Iterationen können mehrere Schritteinträge vorhanden sein.Im Steuerfeld haben Sie folgende Möglichkeiten:
- Visualisierung heran- oder herauszoomen
- Einträge für übergeordneten Schritt minimieren oder maximieren
- Auf einen Schritteintrags klicken und die vorherigen und nächsten Einträge aufrufen
- Bestätigen Sie die erfolgreichen und fehlgeschlagenen Schritteingaben, wie durch ein grünes Häkchen angezeigt. oder rotes Ausrufezeichen
- Schließen Sie den Bereich Visualisierung, indem Sie auf das Erweiterungspfeil; klicken Sie noch einmal darauf, Bereich öffnen
Vor dem Abrufen eines Schritteintrags
Um die Berechtigungen zu erhalten, die Sie zum Abrufen eines Schritteintrags benötigen,
bitten Sie Ihren Administrator, Ihnen
Workflow-Administrator (workflows.stepEntries.get
)
IAM-Rolle für Ihr Projekt
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Schritteintrag abrufen
Um einen Schritteintrag für eine bestimmte Workflowausführung abzurufen, verwenden Sie die Methode
projects.locations.workflows.executions.stepEntries.get
.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_NUMBER
: Ihr Google Cloud-Team Projektnummer, die in den IAM- und Verwaltung Einstellungen.LOCATION
: die Region, in der der Workflow bereitgestellt wird, z. B.us-central1
.WORKFLOW_ID
: Der benutzerdefinierte Name für den Workflow, z. B.myFirstWorkflow
.EXECUTION_ID
: die eindeutige ID für eine Workflowausführung, die zurückgegeben wird, nachdem ein Workflow ausgeführt wurde.STEPENTRY_ID
: die eindeutige ID für eine Schritteintrag, z. B.1
.
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/workflows/WORKFLOW_ID/executions/EXECUTION_ID/stepEntries/STEPENTRY_ID", "createTime": "2023-10-19T13:49:56.522717646Z", "updateTime": "2023-10-19T13:49:56.525439354Z", "routine": "main", "step": "checkSearchTermInInput", "stepType": "STEP_CONDITION", "state": "STATE_SUCCEEDED", "entryId": "2", "navigationInfo": { "children": [ "3" ], "parent": "1", "next": "3", "previous": "1" } }
Bevor Sie Schritte auflisten
Um die Berechtigungen zum Auflisten von Schritteinträgen zu erhalten,
bitten Sie Ihren Administrator, Ihnen
Workflow-Administrator (workflows.stepEntries.list
)
IAM-Rolle für Ihr Projekt
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Schritteinträge auflisten
Um die Schritteinträge für eine bestimmte Workflowausführung aufzulisten, verwenden Sie die Methode
projects.locations.workflows.executions.stepEntries.list
. Standardmäßig werden Ergebnisse in aufsteigender Reihenfolge nach createTime
zurückgegeben.
der Schritteingaben.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_NUMBER
: Ihr Google Cloud-Team Projektnummer, die in den IAM- und Verwaltung Einstellungen.LOCATION
: die Region, in der der Workflow bereitgestellt wird, z. B.us-central1
.WORKFLOW_ID
: der benutzerdefinierte Name für den Workflow, z. B.myFirstWorkflow
.EXECUTION_ID
: Die eindeutige ID für eine Workflowausführung, die nach der Ausführung eines Workflows zurückgegeben wird.
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "stepEntries": [ { "name": "projects/PROJECT_NUMBER/locations/LOCATION/workflows/WORKFLOW_ID/executions/EXECUTION_ID/stepEntries/1", "createTime": "2023-10-19T13:49:56.522705770Z", "updateTime": "2023-10-19T13:49:56.525439429Z", "routine": "main", "step": "checkSearchTermInInput", "stepType": "STEP_SWITCH", "state": "STATE_SUCCEEDED", "entryId": "1", "navigationInfo": { "children": [ "2" ], "next": "2" } }, { "name": "projects/PROJECT_NUMBER/locations/LOCATION/workflows/WORKFLOW_ID/executions/EXECUTION_ID/stepEntries/2", "createTime": "2023-10-19T13:49:56.522717646Z", "updateTime": "2023-10-19T13:49:56.525439354Z", "routine": "main", "step": "checkSearchTermInInput", "stepType": "STEP_CONDITION", "state": "STATE_SUCCEEDED", "entryId": "2", "navigationInfo": { "children": [ "3" ], "parent": "1", "next": "3", "previous": "1" } }, { "name": "projects/PROJECT_NUMBER/locations/LOCATION/workflows/WORKFLOW_ID/executions/EXECUTION_ID/stepEntries/3", "createTime": "2023-10-19T13:49:56.525379814Z", "updateTime": "2023-10-19T13:49:56.525439285Z", "routine": "main", "step": "checkSearchTermInInput.condition1", "stepType": "STEP_ASSIGN", "state": "STATE_SUCCEEDED", "entryId": "3", "navigationInfo": { "parent": "2", "next": "4", "previous": "2" } }, { "name": "projects/PROJECT_NUMBER/locations/LOCATION/workflows/WORKFLOW_ID/executions/EXECUTION_ID/stepEntries/4", "createTime": "2023-10-19T13:49:56.525440360Z", "updateTime": "2023-10-19T13:49:56.716973793Z", "routine": "main", "step": "readWikipedia", "stepType": "STEP_CALL", "state": "STATE_SUCCEEDED", "entryId": "4", "navigationInfo": { "next": "5", "previous": "3" } }, { "name": "projects/PROJECT_NUMBER/locations/LOCATION/workflows/WORKFLOW_ID/executions/EXECUTION_ID/stepEntries/5", "createTime": "2023-10-19T13:49:56.717263008Z", "updateTime": "2023-10-19T13:49:56.717353199Z", "routine": "main", "step": "returnOutput", "stepType": "STEP_RETURN", "state": "STATE_SUCCEEDED", "entryId": "5", "navigationInfo": { "previous": "4" } } ], "totalSize": 5 }
Beispiele
Workflow mit einem for
-Block
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}" } } ]
Diagramm
Schritteinträge
{ "stepEntries": [ { "name": "projects/200478149810/locations/us-central1/workflows/ck-for-block/executions/74785b43-5b9f-4adf-bde7-a9880d0e100a/stepEntries/1", "createTime": "2023-10-20T17:19:37.889232683Z", "updateTime": "2023-10-20T17:19:37.889275457Z", "routine": "main", "step": "assignStep", "stepType": "STEP_ASSIGN", "state": "STATE_SUCCEEDED", "entryId": "1", "navigationInfo": { "next": "2" } }, { "name": "projects/200478149810/locations/us-central1/workflows/ck-for-block/executions/74785b43-5b9f-4adf-bde7-a9880d0e100a/stepEntries/2", "createTime": "2023-10-20T17:19:37.889276124Z", "updateTime": "2023-10-20T17:19:37.889474759Z", "routine": "main", "step": "forStep", "stepType": "STEP_FOR", "state": "STATE_SUCCEEDED", "entryId": "2", "navigationInfo": { "children": [ "3", "5" ], "next": "3", "previous": "1" } }, { "name": "projects/200478149810/locations/us-central1/workflows/ck-for-block/executions/74785b43-5b9f-4adf-bde7-a9880d0e100a/stepEntries/3", "createTime": "2023-10-20T17:19:37.889313107Z", "updateTime": "2023-10-20T17:19:37.889382353Z", "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" } }, { "name": "projects/200478149810/locations/us-central1/workflows/ck-for-block/executions/74785b43-5b9f-4adf-bde7-a9880d0e100a/stepEntries/4", "createTime": "2023-10-20T17:19:37.889317653Z", "updateTime": "2023-10-20T17:19:37.889382265Z", "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" } }, { "name": "projects/200478149810/locations/us-central1/workflows/ck-for-block/executions/74785b43-5b9f-4adf-bde7-a9880d0e100a/stepEntries/5", "createTime": "2023-10-20T17:19:37.889383134Z", "updateTime": "2023-10-20T17:19:37.889474707Z", "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" } }, { "name": "projects/200478149810/locations/us-central1/workflows/ck-for-block/executions/74785b43-5b9f-4adf-bde7-a9880d0e100a/stepEntries/6", "createTime": "2023-10-20T17:19:37.889384893Z", "updateTime": "2023-10-20T17:19:37.889474649Z", "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" } }, { "name": "projects/200478149810/locations/us-central1/workflows/ck-for-block/executions/74785b43-5b9f-4adf-bde7-a9880d0e100a/stepEntries/7", "createTime": "2023-10-20T17:19:37.889475882Z", "updateTime": "2023-10-20T17:19:37.889483477Z", "routine": "main", "step": "returnStep", "stepType": "STEP_RETURN", "state": "STATE_SUCCEEDED", "entryId": "7", "navigationInfo": { "previous": "6" } } ], "totalSize": 7 }
Workflow mit einem Aufruf eines untergeordneten Workflows
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}" } } ] } }
Diagramm
Schritteinträge
{ "stepEntries": [ { "name": "projects/200478149810/locations/us-central1/workflows/ck-for-block/executions/69da2159-1039-4f88-8d8a-12baf398f372/stepEntries/1", "createTime": "2023-10-21T15:25:55.406007695Z", "updateTime": "2023-10-21T15:25:55.412984492Z", "routine": "main", "step": "callStep", "stepType": "STEP_CALL", "state": "STATE_SUCCEEDED", "entryId": "1", "navigationInfo": { "children": [ "2", "3" ], "next": "2" } }, { "name": "projects/200478149810/locations/us-central1/workflows/ck-for-block/executions/69da2159-1039-4f88-8d8a-12baf398f372/stepEntries/2", "createTime": "2023-10-21T15:25:55.412921902Z", "updateTime": "2023-10-21T15:25:55.412967631Z", "routine": "square", "step": "assignStep", "stepType": "STEP_ASSIGN", "state": "STATE_SUCCEEDED", "entryId": "2", "navigationInfo": { "parent": "1", "next": "3", "previous": "1" } }, { "name": "projects/200478149810/locations/us-central1/workflows/ck-for-block/executions/69da2159-1039-4f88-8d8a-12baf398f372/stepEntries/3", "createTime": "2023-10-21T15:25:55.412968712Z", "updateTime": "2023-10-21T15:25:55.412978913Z", "routine": "square", "step": "retStep", "stepType": "STEP_RETURN", "state": "STATE_SUCCEEDED", "entryId": "3", "navigationInfo": { "parent": "1", "next": "4", "previous": "2" } }, { "name": "projects/200478149810/locations/us-central1/workflows/ck-for-block/executions/69da2159-1039-4f88-8d8a-12baf398f372/stepEntries/4", "createTime": "2023-10-21T15:25:55.412992302Z", "updateTime": "2023-10-21T15:25:55.412998396Z", "routine": "main", "step": "retStep", "stepType": "STEP_RETURN", "state": "STATE_SUCCEEDED", "entryId": "4", "navigationInfo": { "previous": "3" } } ], "totalSize": 4 }
Workflow mit einem fehlgeschlagenen Schritt
Workflow
YAML
- tryStep: try: return: ${1 / 0} except: return: 0
JSON
[ { "tryStep": { "try": { "return": "${1 / 0}" }, "except": { "return": 0 } } } ]
Diagramm
Schritteinträge
{ "stepEntries": [ { "name": "projects/200478149810/locations/us-central1/workflows/ck-for-block/executions/8ec49dae-ab0c-4b55-b1c4-b809244be913/stepEntries/1", "createTime": "2023-10-20T18:06:50.395938752Z", "updateTime": "2023-10-20T18:06:50.396525946Z", "routine": "main", "step": "tryStep", "stepType": "STEP_TRY_RETRY_EXCEPT", "state": "STATE_SUCCEEDED", "entryId": "1", "navigationInfo": { "children": [ "2", "4" ], "next": "2" } }, { "name": "projects/200478149810/locations/us-central1/workflows/ck-for-block/executions/8ec49dae-ab0c-4b55-b1c4-b809244be913/stepEntries/2", "createTime": "2023-10-20T18:06:50.395942598Z", "updateTime": "2023-10-20T18:06:50.396497992Z", "routine": "main", "step": "tryStep", "stepType": "STEP_TRY", "state": "STATE_FAILED", "entryId": "2", "navigationInfo": { "children": [ "3" ], "parent": "1", "next": "3", "previous": "1" } }, { "name": "projects/200478149810/locations/us-central1/workflows/ck-for-block/executions/8ec49dae-ab0c-4b55-b1c4-b809244be913/stepEntries/3", "createTime": "2023-10-20T18:06:50.395944871Z", "updateTime": "2023-10-20T18:06:50.396497499Z", "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" } }, { "name": "projects/200478149810/locations/us-central1/workflows/ck-for-block/executions/8ec49dae-ab0c-4b55-b1c4-b809244be913/stepEntries/4", "createTime": "2023-10-20T18:06:50.396506860Z", "updateTime": "2023-10-20T18:06:50.396525900Z", "routine": "main", "step": "tryStep", "stepType": "STEP_EXCEPT", "state": "STATE_SUCCEEDED", "entryId": "4", "navigationInfo": { "children": [ "5" ], "parent": "1", "next": "5", "previous": "3" } }, { "name": "projects/200478149810/locations/us-central1/workflows/ck-for-block/executions/8ec49dae-ab0c-4b55-b1c4-b809244be913/stepEntries/5", "createTime": "2023-10-20T18:06:50.396516994Z", "updateTime": "2023-10-20T18:06:50.396525818Z", "routine": "main", "step": "tryStep.except", "stepType": "STEP_RETURN", "state": "STATE_SUCCEEDED", "entryId": "5", "navigationInfo": { "parent": "4", "previous": "4" } } ], "totalSize": 5 }