Auf Ergebnisse der Workflow-Ausführung zugreifen

Nachdem Sie einen Workflow ausgeführt haben, können Sie über die Google Cloud Console oder die Google Cloud CLI auf die Ergebnisse der Workflowausführung zugreifen.

Console

  1. Öffnen Sie in der Google Cloud Console die Seite Workflows.

    Zur Seite "Workflows"

  2. Klicken Sie auf den Namen des Workflows, um auf die Seite Workflow-Details zuzugreifen und so die Ausführungsergebnisse des Workflows anzuzeigen.

  3. Wenn Sie Details zu einer bestimmten Ausführung aufrufen möchten, klicken Sie auf dem Tab Ausführungen in der Liste auf die Ausführungs-ID, um die Seite Ausführungsdetails aufzurufen.

  4. Auf dem Tab Zusammenfassung sind zu jeder Ausführung die folgenden Informationen zu sehen:

    • Ausführungs-ID: Die eindeutige Kennung der Workflowausführung.
    • Ausführungsstatus: Gibt den Endstatus des Workflows an, einschließlich des aktuellen oder letzten Workflowschritts.
    • Ausführung erstellt: Der Zeitpunkt, zu dem die Ausführung gestartet wurde.
    • Ausführungsstart: Der Zeitpunkt, zu dem die Ausführung gestartet wurde und Schritte ausgeführt wurden.
    • Ausführungsende: Der Zeitpunkt, an dem die Ausführung beendet wurde.
    • Ausführungsdauer: Gesamtzeit, die während der Ausführung verstrichen ist. Dies kann ein Hinweis auf Netzwerkfehler oder Verbindungsprobleme sein.
    • Workflowname: Der Name des Workflows.
    • Workflow-Überarbeitung: die aktuelle Überarbeitung zum Zeitpunkt der Ausführung.
    • Aufruflogebene: Ebene des Aufruf-Loggings, die während der Ausführung angewendet wird. Weitere Informationen finden Sie unter Anrufprotokollierung.
    • Eingabe: Die Laufzeitargumente, die an den Workflow übergeben wurden, sofern vorhanden.
    • Ausgabe: Die Ausgabe des Workflows. Wenn die Ausführung fehlgeschlagen ist, ist hier die Ausnahme enthalten, die zum Fehler der Ausführung geführt hat. Weitere Informationen finden Sie in diesem Dokument unter Fehlerzuordnungskarten für die Ausführung.
  5. Wenn Sie den Ausführungsverlauf des Workflows als Liste von Schritten aufrufen möchten, klicken Sie auf den Tab Schritte. Weitere Informationen finden Sie unter Verlauf der Ausführungsschritte ansehen.

  6. Klicken Sie auf den Tab Protokolle, um die Protokolle für eine Workflowausführung aufzurufen.

  7. Verwenden Sie das Feld Filter oben in der Tabelle, um die Ausführungslogs zu filtern. Wenn Sie beispielsweise nur fehlgeschlagene Ausführungsversuche anzeigen möchten, geben Sie in das Textfeld des Filters failed ein.

gcloud

  1. Geben Sie den folgenden Befehl ein, um eine vollständige Liste der Ausführungen eines Workflows aufzurufen:

    gcloud workflows executions list WORKFLOW_NAME
    

    Ersetzen Sie WORKFLOW_NAME durch den Namen Ihres Workflows. Kopieren Sie die Ausführungs-ID der Ausführung, für die Sie Informationen erhalten möchten.

  2. Geben Sie den folgenden Befehl ein, um die Ausführungslogs eines Workflows aufzurufen:

    gcloud workflows executions describe \
        --workflow=WORKFLOW_NAME \
        EXECUTION_ID
    

    Ersetzen Sie Folgendes:

    • WORKFLOW_NAME: der Name des Workflows
    • EXECUTION_ID: die eindeutige ID der Ausführung

    Die Ausgabe dieses Befehls sieht in etwa so aus:

    argument: 'null'
    endTime: '2022-07-19T12:40:07.070039707Z'
    error:
     context: |-
        The argument of 'in' must be a dict or an array; got: null
        in step "checkSearchTermInInput", routine "main", line: 12
     payload: "{"message":"The argument of 'in' must be a dict or an array; got: null"
    ,"tags":["TypeError"]}" stackTrace: elements: - position: column: '26' length: '24' line: '12' routine: main step: checkSearchTermInInput name: projects/1051295516635/locations/us-central1/workflows/myFirstWorkflow/executions/17ffc89c-0a27-4d2f-8356-e681d949a3d3 startTime: '2022-07-19T12:40:07.024823663Z' state: FAILED status: currentSteps: - routine: main step: checkSearchTermInInput workflowRevisionId: 000001-ac2
    Die Ausgabe enthält die folgenden Informationen:

    • argument: die Laufzeitargumente, die an den Workflow übergeben wurden, sofern vorhanden
    • endTime: der Zeitpunkt, an dem die Ausführung beendet wurde
    • error: die Fehlermeldung, die als Teil der Ausnahme ausgelöst wurde, die zum Fehler bei der Ausführung geführt hat
    • name: der vollständige Name der Ausführung, einschließlich Projektname, Speicherort des Workflows, Name des Workflows und Ausführungs-ID
    • startTime: der Zeitpunkt, an dem die Ausführung gestartet wurde
    • state: gibt den Endstatus des Workflows an
    • status: den aktuellen oder letzten Workflowschritt der Ausführung
    • workflowRevisionID: die aktuelle Überarbeitung zum Zeitpunkt der Ausführung

Karten mit Ausführungsfehlern

Wenn ein Workflow während der Ausführung einen Fehler auslöst, der nicht in einem try/except-Block erfasst wird, schlägt die Ausführung fehl und eine Fehlerzuordnung (ein JSON-Wörterbuch), die den Fehler beschreibt, wird zurückgegeben.

Fehler, die während der Workflowausführung ausgelöst werden, enthalten Tags, anhand derer Sie die Fehlerursache ermitteln können. Der von einem Connector zurückgegebene Fehler kann beispielsweise zwei Schlüssel (tags und message) haben, die in etwa so aussehen:

{'tags': ['SystemError'], 'message': 'an error has occurred'}

Es können mehrere Tags vorhanden sein. Wenn Sie nach einem bestimmten Tag suchen möchten, können Sie einen Ausdruck verwenden. Beispiel:

${'SystemError' in e.tags}

Daten zu Zugriffsfehlern werden als String zurückgegeben

Einige Connectoren und HTTP-APIs serialisieren Fehler als Strings, bevor sie zurückgegeben werden. Sie können Standardbibliotheksfunktionen verwenden, um eine Nutzlast auf den ursprünglichen Fehler zurückzusetzen. Wenn Sie beispielsweise einen Fehlerstring in eine Karte konvertieren möchten, können Sie die Funktionen json.decode und text.encode verwenden:

json.decode(text.encode(ERROR_FROM_API))

Fehler-Tags

Die Bedeutung verschiedener Fehlertags wird in der folgenden Tabelle beschrieben.

Tag Beschreibung
AuthError Wird ausgelöst, wenn Anmeldedaten für eine HTTP-Anfrage generiert werden.
ConnectionError Wird ausgelöst, wenn eine Verbindung mit dem Endpunkt hergestellt wurde, aber während der Datenübertragung ein Problem mit der Verbindung auftritt. Die Verbindung wird beendet, bevor eine vollständige Antwort empfangen wird, und eine Nachricht wird möglicherweise nicht an den Endpunkt gesendet. Wiederholungen sind möglicherweise nicht idempotent.
ConnectionFailedError Wird ausgelöst, wenn keine Verbindung zum API-Endpunkt hergestellt werden kann. Zum Beispiel aufgrund eines falschen Domainnamens, aufgrund von Problemen mit der DNS-Auflösung oder aufgrund anderer Netzwerkprobleme. Wiederholungsversuche sind idempotent.
HttpError Wird ausgelöst, wenn eine HTTP-Anfrage mit einem HTTP-Fehlerstatus fehlschlägt. Wenn diese Ausnahme ausgelöst wird, ist die Antwort eine Zuordnung mit den folgenden Elementen:
  • tags: Liste mit dem String HttpError
  • message: Für Menschen lesbare Fehlermeldung
  • code: HTTP-Antwortstatuscode
  • headers: Antwortheader
  • body: Antworttext
IndexError Wird ausgelöst, wenn ein Sequenzunterskript außerhalb des Bereichs liegt.
KeyError Wird ausgelöst, wenn ein Zuordnungsschlüssel nicht in den vorhandenen Schlüsseln gefunden wird.
OperationError Wird ausgelöst, wenn ein langwieriger Vorgang nicht erfolgreich abgeschlossen wird.
ParallelNestingError Wird ausgelöst, wenn die maximale Tiefe, in der parallele Schritte verschachtelt werden können, überschritten wird.
RecursionError Wird ausgelöst, wenn der Interpreter erkennt, dass die maximale Aufrufstapeltiefe überschritten wurde.
ResourceLimitError Wird ausgelöst, wenn ein Ressourcenlimit aufgebraucht ist. Bei internen Fehlern kann dieser Fehlertyp nicht erfasst werden und führt zu einem sofortigen Ausführungsfehler.
ResponseTypeError Wird ausgelöst, wenn ein lang andauernder Vorgang eine Antwort vom falschen Typ zurückgibt.
SystemError Wird ausgelöst, wenn der Interpreter einen internen Fehler findet.
TimeoutError Wird ausgelöst, wenn eine Systemfunktion auf Systemebene das Zeitlimit überschreitet.
TypeError Wird ausgelöst, wenn ein Vorgang oder eine Funktion auf ein Objekt mit nicht kompatiblem Typ angewendet wird. Der verknüpfte Wert ist ein String mit Details zur Typabweichung.
UnhandledBranchError Wird ausgelöst, wenn in einem oder mehreren Zweigen oder Iterationen ein nicht behandelter Laufzeitfehler auftritt, bis eine maximale Anzahl erreicht wird.
ValueError Wird ausgelöst, wenn ein Vorgang oder eine Funktion ein Argument mit dem richtigen Typ, aber einem falschen Wert erhält, und die Situation nicht durch eine präzisere Ausnahme beschrieben wird, z. B. durch IndexError.
ZeroDivisionError Wird ausgelöst, wenn das zweite Argument eines Divisions- oder Modulo-Vorgangs null ist. Der zugehörige Wert ist ein String, der den Typ der Operanden und den Vorgang angibt.

Mit der Syntax raise können Sie auch benutzerdefinierte Fehler auslösen.

Nächste Schritte