Fehlerbehebung bei Eventarc für Workflows

Auf dieser Seite erfahren Sie, wie Sie Probleme bei der Verwendung von Eventarc für Workflows beheben.

Weitere Probleme, die auftreten können, finden Sie unter:

Triggererstellung schlägt fehl, da Workflowziel nicht vorhanden ist

Möglicherweise erhalten Sie eine Fehlermeldung, die so aussieht:

cloud workflow "projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_ID" does not exist
Diese Ausgabe enthält die folgenden Werte:

  • PROJECT_ID: Ihre Google Cloud-Projekt-ID
  • LOCATION: Der Speicherort Ihres Workflows
  • WORKFLOW_ID: Der Name Ihres Workflows.

Das passiert, wenn Eventarc den Zielworkflow nicht finden kann. So beheben Sie dies:

  1. Prüfen Sie, ob der Zielworkflow vorhanden und AKTIV ist:

    gcloud workflows list --location -

    Die Ausgabe sollte in etwa so aussehen:

    NAME                                                          STATE   REVISION_ID  UPDATE_TIME
    projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_ID  ACTIVE  000004-c0c   2021-11-19T14:29:27.530185556Z

  2. Prüfen Sie, ob Sie beim Erstellen des Triggers die richtige Workflow-ID und den richtigen Workflow-Speicherort angegeben haben.

Der Trigger wurde erfolgreich erstellt, das Ziel empfängt jedoch keine Ereignisse

Prüfen Sie, ob seit der Erstellung des Triggers genügend Zeit vergangen ist. Es kann bis zu zwei Minuten dauern, bis Ereignisse gesendet werden.

Wenn der Trigger immer noch nicht funktioniert und keine Ereignisse gesendet werden:

  1. Von Pub/Sub an das Ziel gesendete Ereignisse werden möglicherweise verworfen. Damit die Ereignisse nicht verworfen werden, richten Sie eine Wiederholungsrichtlinie für Pub/Sub-Abos ein oder leiten Sie nicht zugestellte Nachrichten an ein Thema für unzustellbare Nachrichten weiter (auch als Warteschlange für unzustellbare Nachrichten bezeichnet).

    Bevor Sie das Thema für unzustellbare Nachrichten festlegen, rufen Sie das Thema und das Abo des Triggers ab:

    gcloud eventarc triggers describe TRIGGER \
    --location=LOCATION

    Ersetzen Sie Folgendes:

    • TRIGGER: ID des Triggers oder eine voll qualifizierte Kennzeichnung.
    • LOCATION: Standort des Eventarc-Triggers.
  2. Verwenden Sie die Google Cloud Console, um zu überwachen, ob Nachrichten mit dem Messwert im Pub/Sub-Thema veröffentlicht werden: topic/send_message_operation_count.

  3. Wenn keine Nachrichten im Pub/Sub-Thema veröffentlicht werden, prüfen Sie, ob die Quelle Ereignisse generiert:

    • Prüfen Sie für Ereignisse aus Cloud-Audit-Logs in den Logs, ob der überwachte Dienst Logs schreibt. Wenn Logs aufgezeichnet, aber keine Ereignisse zugestellt werden, wenden Sie sich an den Support.
    • Prüfen Sie für Ereignisse aus Cloud Storage die Benachrichtigungen für Ihren Bucket:

      gsutil notification list gs://BUCKET_NAME
      Ersetzen Sie BUCKET_NAME durch den Namen des Buckets.
      Die Ausgabe sollte in etwa so aussehen:

      projects/_/buckets/BUCKET_NAME/notificationConfigs/NOTIFICATION_CONFIG_ID
      Cloud Pub/Sub topic: projects/PROJECT_ID/topics/TOPIC_ID
      Filters:
        Event Types: OBJECT_ARCHIVE

      Diese Ausgabe enthält die folgenden Werte:

      • TOPIC_ID: die ID des vorhandenen Pub/Sub-Themas.
      • NOTIFICATION_CONFIG_ID: Die ID der Benachrichtigungskonfiguration.
  4. Wenn Ereignisse zugestellt, aber keine Workflowausführungen ausgelöst werden, ist dies wahrscheinlich auf einen nicht authentifizierten Aufruf zurückzuführen. Achten Sie darauf, dass der Trigger mit einem Dienstkonto verknüpft ist, das berechtigt ist, Workflowausführungen zu erstellen. Weitere Informationen finden Sie in den Anweisungen zum Erstellen eines nutzerverwalteten Dienstkontos im Abschnitt „Erstellen eines Triggers vorbereiten“, wenn Sie einen Trigger für einen bestimmten Anbieter, Ereignistyp und Workflows-Ziel erstellen.

  5. Wenn Nachrichten in einem Pub/Sub-Thema veröffentlicht werden, aber keine Workflowausführungen ausgelöst werden, achten Sie darauf, dass die Eventarc-Nutzlast nicht größer als 512 KB ist. Weitere Informationen zu Ressourcenlimits finden Sie unter Kontingente und Limits.

    1. Rufen Sie in der Cloud Console die Seite Abos auf.

      Zu den Abos

    2. Nicht bestätigte Nachrichten im Abo überwachen Weitere Informationen finden Sie unter Weitergeleitete unzustellbare Nachrichten beobachten.

    3. Wenn nicht bestätigte Nachrichten vorhanden sind, überwachen Sie die Workflowlogs für die Methode TriggerPubsubExecution. Weitere Informationen zum Aufrufen von Workflow-Logs finden Sie unter Workflow-Logs ansehen.

      • Verwenden Sie den Filter Permission 'workflows.executions.create' denied, um zu prüfen, ob der Trigger einem Dienstkonto zugeordnet ist, das berechtigt ist, Workflowausführungen auszulösen. Weitere Informationen zum Zuweisen der entsprechenden Rollen für das Dienstkonto finden Sie im Abschnitt „Erstellen eines Triggers vorbereiten“, wenn Sie einen Trigger für einen bestimmten Anbieter, Ereignistyp und ein Workflows-Ziel erstellen.
      • Verwenden Sie das Schlüsselwort event size exceeded, um zu prüfen, ob die Ereignisgröße über 512 KB liegt.
    4. Wenn Logs aufgezeichnet, aber keine Ereignisse zugestellt werden, wenden Sie sich an den Support.