Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

Fehlerbehebung

Hier lernen Sie Strategien für die Fehlerbehebung kennen, wenn Sie Probleme mit Workflows haben.

Fehlerbehebung bei Bereitstellungsfehlern

Wenn ein Workflow bereitgestellt wird, prüft Workflows, ob der Quellcode frei von Fehlern ist und mit der Sprachsyntax übereinstimmt. Wenn Workflows einen Fehler finden, gibt der Workflow einen Fehler zurück. Die häufigsten Arten von Bereitstellungsfehlern sind:

  • Auf eine nicht definierte Variable, einen Schritt oder einen Unterworkflow verweisen
  • Falsche Syntax
    • Falsche Einzug
    • Fehlendes oder überflüssiges {, }, ", - oder :

Der folgende Quellcode löst beispielsweise einen Bereitstellungsfehler aus, da die Rückgabeanweisung auf eine nicht definierte Variable varC verweist:

- step1:
    assign:
    - varA: "Hello"
    - varB: "World"
- step2:
    return: ${varC + varB}

Dieser falsche Quellcode wird in den folgenden Cloud Console- und Cloud SDK-Beispielen verwendet.

Console

Wenn ein Bereitstellungsfehler auftritt, zeigt Workflows die Fehlermeldung in einem roten Banner über dem Quellcode des Workflows an:

Bereitstellungsfehler

Die Fehlermeldung kennzeichnet das Problem im Quellcode und gibt an, wo der Fehler nach Möglichkeit aufgetreten ist:

Could not deploy workflow: failed to build: error in step step2: error
evaluating return value: symbol 'varC' is neither a variable nor a
sub-workflow name (Code: 3)

gcloud

Wenn Sie den Befehl gcloud workflows deploy ausführen, gibt Workflows eine Fehlermeldung an die Befehlszeile zurück, wenn die Bereitstellung fehlschlägt. Die Fehlermeldung kennzeichnet das Problem im Quellcode und gibt an, wo der Fehler nach Möglichkeit aufgetreten ist:

ERROR: (gcloud.beta.workflows.deploy) [INVALID_ARGUMENT] failed to build:
error in step step2: error evaluating return value: symbol 'varC' is neither
a variable nor a sub-workflow name

Bearbeiten Sie den Quellcode des Workflows, um das Problem zu beheben. Aktualisieren Sie in diesem Fall den Verweis auf varC auf varA.

Logs zum Bereitstellen und Löschen von Workflows aufrufen

Sie können in der Cloud Console auf Fehlerlogs im Zusammenhang mit der Bereitstellung und Löschung eines Workflows zugreifen.

  1. Rufen Sie in der Google Cloud Console die Seite "Workflows" auf:
    Zur Seite "Workflows"

  2. Zum Aufrufen der Logs eines Workflows klicken Sie auf dessen Namen, um die zugehörige Seite Details aufzurufen.

  3. Wählen Sie den Tab Logs aus.

  4. Wählen Sie zum Filtern der Logs nach Schweregrad die Drop-down-Liste Standard und dann die Fehlertypen aus, die in den Logs angezeigt werden sollen.

Auf die Ergebnisse der Workflowausführung zugreifen

Sie können in der Cloud Console oder mit dem Cloud SDK auf die Ergebnisse der Workflowausführung zugreifen.

Console

  1. Rufen Sie in der Google Cloud Console die Seite "Workflows" auf:
    Zur Seite "Workflows"

  2. Klicken Sie auf den Namen eines Workflows, um die zugehörige Seite Details aufzurufen, um auf die Ausführungsergebnisse eines Workflows zuzugreifen.

  3. Wenn Sie Details zu einer bestimmten Ausführung sehen möchten, klicken Sie auf die ID der Ausführung in der Liste. Für jede Ausführung gibt es folgende Informationen:

    • Ausführungsstatus: Gibt den Endstatus des Workflows an.
    • Ausführungsbeginn: Zeitpunkt, an dem die Ausführung gestartet wurde.
    • Ausführungsabschluss: Zeitpunkt, an dem die Ausführung beendet wurde.
    • Ausführungsdauer: Die verstrichene Zeit. Dies kann auf Netzwerkfehler oder Verbindungsprobleme hindeuten.
    • Ausgabe: Die Ausgabe des Workflows. Wenn die Ausführung fehlschlägt, enthält die Ausnahme, die zum Ausfall der Ausführung führt. Weitere Informationen finden Sie im Abschnitt Fehlermeldungen bei der Ausführung.
    • Eingabe: Die Laufzeitargumente, die gegebenenfalls an den Workflow übergeben werden.
  4. Um die Logs für alle Ausführungen eines Workflows aufzurufen, klicken Sie auf Logs, um den Tab Logs zu öffnen.

  5. Nutzen Sie das Feld Filter oben in der Tabelle, um die Ausführungsprotokolle zu filtern. Wenn Sie beispielsweise nur fehlgeschlagene Ausführungsversuche aufrufen möchten, geben Sie in das Filterfeld "fehlgeschlagen" ein.

    Ausführungslogs filtern

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, an der Sie interessiert sind.

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

    gcloud workflows executions describe \
    --workflow=[WORKFLOW-NAME] \
    [EXECUTION-ID]
    

    Dabei gilt:

    • [WORKFLOW-NAME]: Der Name des Workflows.
    • [EXECUTION-ID]: Die eindeutige ID der Ausführung.

Die Ausgabe dieses Befehls sieht in etwa so aus:

argument: '{"message":"I love it so much!"}'
endTime: '2020-07-21T17:48:16.438109757Z'
error: 'in step "sentimentCheck": {"message":"KeyError: key not found: messaage","tags":["KeyError","LookupError"]}'
name: projects/********/locations/us-central1/workflows/sentimentCheck/executions/e8103c53-72ba-4af7-8996-f5a8337c2a7
startTime: '2020-10-12T17:48:16.342177302Z'
state: FAILED
workflowRevisionId: '000009-e6d'

Die Ausgabe enthält die folgenden Informationen:

  • argument: Die an den Workflow übergebenen Laufzeitargumente, falls vorhanden.
  • endTime: Das Ende der Ausführung.
  • error: Die Fehlermeldung wird als Teil der Ausnahme ausgegeben, die zu einem Fehler bei der Ausführung geführt hat.
  • name: Der vollständige Name der Ausführung, einschließlich des Namens des Projekts, des Standorts des Workflows, des Namens des Workflows und der Ausführungs-ID.
  • startTime: Zeitpunkt, an dem die Ausführung gestartet wurde.
  • state: Gibt den Endstatus des Workflows an.
  • workflowRevisionID: Die aktuelle Überarbeitung zum Zeitpunkt der Ausführung.

Fehlermeldungen bei Ausführungen

Wenn ein Workflow während der Ausführung eine Ausnahme auslöst, die in einem Versuchs-/Ausnahmeblock nicht erfasst wird, schlägt die Ausführung fehl und es wird ein Fehlerwörterbuch zurückgegeben.

Fehler, die bei der Workflow-Ausführung ausgegeben werden, enthalten Tags, anhand derer Sie die Ursache des Fehlers ermitteln können. In der folgenden Tabelle wird die Bedeutung verschiedener Fehler-Tags beschrieben.

Fehler-Tag Beschreibung
TypeError Wird ausgelöst, wenn ein Vorgang oder eine Funktion auf ein Objekt in einem nicht kompatiblen Typ angewendet wird. Der zugeordnete Wert ist ein String, der Details zum Typ der Übereinstimmung enthält.
ValueError Wird ausgelöst, wenn ein Vorgang oder eine Funktion ein Argument mit dem richtigen Typ, aber einen falschen Wert erhält, und die Situation nicht durch eine genauere Ausnahme wie z. B. "IndexError" beschrieben wird.
IndexError Wird ausgelöst, wenn ein Sequenz-Subskript außerhalb des zulässigen Bereichs liegt.
KeyError Wird ausgelöst, wenn kein Wörterbuchschlüssel in den vorhandenen Schlüsseln gefunden wird.
RecursionError Wird ausgelöst, wenn der Interpreter erkennt, dass die maximale Rekursionsmenge überschritten wurde.
ZeroDivisionError Wird ausgelöst, wenn das zweite Argument eines Divisions- oder Modulo-Vorgangs null ist. Der zugeordnete Wert ist ein String, der den Typ der Operanden und den Vorgang angibt.
Systemfehler Wird ausgelöst, wenn der Interpreter einen internen Fehler findet.
TimeoutError Wird ausgelöst, wenn eine Systemfunktion ein Zeitlimit überschreitet.
ResourceLimitError Wird ausgelöst, wenn ein Ressourcenlimit ausgeschöpft ist. Wird diese Art von Fehler intern erfasst, kann er nicht abgefangen werden und führt sofort zu einer fehlgeschlagenen Ausführung.
HttpError Wird ausgelöst, wenn eine HTTP-Anfrage mit einem HTTP-Fehlerstatus fehlschlägt. Wenn diese Ausnahme ausgelöst wird, ist die Antwort ein Wörterbuch mit folgenden Elementen:
* Nachricht – für Menschen lesbare Fehlermeldung * Code – HTTP-Antwortstatuscode * Header – Antwortheader * body – Antworttext

Sie können benutzerdefinierte Ausnahmen auch mithilfe der raise:-Syntax auslösen. Benutzerdefinierte Ausnahmen können Elemente im vorhandenen Fehlerwörterbuch überschreiben.

Logs an Cloud Logging senden

Workflows generieren nicht automatisch Logs für Workflow-Ausführungen in Cloud Logging. Stattdessen können Sie festlegen, wann Logs während einer Workflowausführung an Logging gesendet werden. Logs, die Sie an Logging senden, werden als benutzerdefinierte Logs bezeichnet.

Für Logging erforderliche Berechtigungen

Ein Workflow muss einem Dienstkonto mit der Rolle roles/logging.logWriter zugewiesen sein, um benutzerdefinierte Logs an Logging zu senden. Wenn Sie das mit Ihrem Workflow aktualisierte Dienstkonto ändern müssen, finden Sie entsprechende Informationen unter Workflow aktualisieren. Weitere Informationen zum Erstellen von Dienstkonten und zum Zuweisen von Rollen finden Sie unter Zugriff auf Ressourcen erteilen, ändern und entziehen.

Logeinträge während der Ausführung erstellen

Zum Erstellen eines Logeintrags in Logging während einer Workflowausführung definieren Sie einen Schritt im Workflow, der einen Aufruf des integrierten Unterworkflows sys.log aufruft:

- step1:
    assign:
        - varA: "Hello"
        - varB: "World"
- logStep:
    call: sys.log
    args:
        text: TEXT
        severity: SEVERITY 
- step2:
    return: ${varA + " " + varB}

Definieren Sie beim Erstellen eines Logeintrags Folgendes:

  • TEXT: erforderlich. Der zu protokollierende Text. Wenn Sie die Werte eines Wörterbuchs protokollieren möchten, verwenden Sie ${json.encode_to_string(myDictionary)}.
  • SEVERITY: Optional. Die Wichtigkeitsstufe des Logeintrags. Beispiel: INFO, WARNING oder CRITICAL. Eine vollständige Liste der Schweregrade finden Sie in der Logging-Referenz.

Benutzerdefinierte Workflow-Logs ansehen

Sie können benutzerdefinierte Logs in Workflows oder in Logging ansehen. Um die benutzerdefinierten Logs für einen einzelnen Workflow anzusehen, verwenden Sie den Tab Logs in "Workflows". Eine Zusammenfassung der benutzerdefinierten Logs für alle Workflows erhalten Sie auf der Seite Log-Explorer in Logging.

Logs in Workflows aufrufen

So rufen Sie die benutzerdefinierten Logs eines Workflows in Workflows auf:

  1. Rufen Sie in der Google Cloud Console die Seite "Workflows" auf:
    Zur Seite "Workflows"

  2. Klicken Sie auf den Namen eines Workflows, um die zugehörige Seite Details aufzurufen, um auf die benutzerdefinierten Logs eines Workflows zuzugreifen.

  3. Zum Aufrufen der benutzerdefinierten Logs klicken Sie auf Logs.

  4. Wenn Sie die Logs nach Schweregrad filtern möchten, klicken Sie auf das Drop-down Standard und wählen Sie dann die Wichtigkeit der Logs aus, die Sie ansehen möchten. Standardmäßig werden Logs aller Schweregrade angezeigt.

Auf dem Tab Logs auf der Seite Details eines Workflows werden die folgenden Logtypen angezeigt:

  • Benutzerdefinierte Logs an Logging gesendet

  • Audit-Logs aller Vorgänge, die im Workflow ausgeführt werden, z. B. Aktualisierungen der Definition des Workflows

Logs in Logging ansehen

So rufen Sie benutzerdefinierte Logs in Logging auf:

  1. Rufen Sie in der Cloud Console die Seite Log-Explorer auf:
    Zum Log-Explorer

  2. Wählen Sie in derQuery Builder klicken, Ressource Geben Sie "Workflow" ein und wählen SieWorkflow aus der Liste und klicken Sie aufHinzufügen , um die Option zu aktivieren.

    Workflow-Logging

  3. Klicken Sie auf Abfrage ausführen.

Weitere Informationen zum Anzeigen von Logs in Logging finden Sie unter Log-Explorer verwenden.