Workflow mit Ereignissen oder Pub/Sub-Nachrichten auslösen

Mit einem Eventarc-Trigger können Sie einen Workflow als Ergebnis eines Ereignisses oder einer Gruppe von Ereignissen ausführen. Die Ereignisse werden von einem Ereignisanbieter an interessierte Ereignisempfänger weitergeleitet.

Eventarc liefert Ereignisse über eine HTTP-Anfrage an den Ereignisempfänger im CloudEvents-Format. Der Workflows-Dienst konvertiert das Ereignis in ein JSON-Objekt (gemäß der CloudEvents-Spezifikation) und übergibt das Ereignis als Workflow-Laufzeitargument in die Workflow-Ausführung.

Die Ausführung Ihres Workflows wird in folgenden Fällen ausgelöst:

  • Wenn ein Audit-Log erstellt wird, das den Filterkriterien des Triggers entspricht. In dieser Kurzanleitung erfahren Sie beispielsweise, wie Sie Workflows mit Ereignissen aus BigQuery mithilfe von Cloud-Audit-Logs auslösen.
  • Als Reaktion auf direkte Ereignisse wie die Aktualisierung eines Cloud Storage-Buckets oder die Aktualisierung einer Firebase Remote Config-Vorlage Weitere Informationen finden Sie in dieser Kurzanleitung, in der Workflows mit direkten Ereignissen aus Cloud Storage ausgelöst werden.
  • Nach Nachrichten, die in einem Pub/Sub-Thema veröffentlicht wurden. Weitere Informationen finden Sie beispielsweise in dieser Kurzanleitung, in der Workflows mit Pub/Sub-Nachrichten ausgelöst werden.

Wichtige Hinweise:

  • Ereignisse gelten als zugestellt, sobald die Workflowausführung beginnt. Die eigentliche Ausführung erfolgt asynchron in den Workflow-Diensten.

  • Von Ereignissen ausgelöste Ausführungen werden nicht wiederholt, wenn die Workflowausführung beginnt, aber später fehlschlägt. Weitere Informationen finden Sie in der Richtlinie für Wiederholungen von Ereignissen.

  • Das Deduplizierungsfenster für Workflows beträgt 24 Stunden, um eine genau einmal erfolgende Verarbeitung von Ereignissen zu gewährleisten.

  • Wenn Sie Workflows als Ziel für einen Eventarc-Trigger verwenden, lösen Ereignisse, die größer als die maximale Argumentgröße von Workflows sind, keine Workflowausführungen aus. Weitere Informationen finden Sie unter Kontingente und Limits.

  • Wenn Sie in Projekten, die durch einen Dienstperimeter geschützt sind, Ereignisse an Workflow-Ziele weiterleiten, für die der Pub/Sub-Push-Endpunkt auf eine Workflow-Ausführung festgelegt ist, können Sie nur über Eventarc neue Pub/Sub-Push-Abos erstellen. Das Dienstkonto, das für die Push-Authentifizierung für den Workflow-Endpunkt verwendet wird, muss in den Dienstperimeter aufgenommen werden. Weitere Informationen finden Sie unter Dienstperimeter mit VPC Service Controls einrichten.

Trigger mit der Google Cloud-Befehlszeile erstellen

Wenn Sie einen gcloud eventarc triggers create-Befehl zusammen mit den erforderlichen und optionalen Flags ausführen, können Sie einen Trigger erstellen.

Weitere Informationen finden Sie in der gcloud-Anleitung im Abschnitt „Trigger erstellen“, wenn Sie einen Trigger für einen bestimmten Anbieter, Ereignistyp und Workflows-Ziel erstellen.

Trigger mit der Konsole erstellen

In den folgenden Schritten wird beschrieben, wie Sie in der Google Cloud Console auf der Seite Workflows einen Trigger erstellen.

Hinweise

  1. Enable the Eventarc and Pub/Sub APIs.

    Enable the APIs

  2. Erstellen Sie ein Dienstkonto, damit Eventarc Anfragen an die Workflows API senden kann:

    1. Rufen Sie in der Google Cloud Console die Seite Dienstkonten auf.

      Zur Seite „Dienstkonten“

    2. Wählen Sie ein Projekt aus und klicken Sie auf Dienstkonto erstellen.

    3. Geben Sie im Feld Dienstkontoname einen Namen zwischen 6 und 30 Zeichen ein.

      Er kann alphanumerische Zeichen in Kleinschreibung sowie Bindestriche enthalten. Nachdem Sie ein Dienstkonto erstellt haben, können Sie den Namen nicht mehr ändern.

    4. Klicken Sie auf Erstellen und fortfahren.

    5. Weisen Sie Ihrem neuen Dienstkonto die Rolle workflows.invoker zu, damit das Konto die Berechtigung zum Auslösen Ihres Workflows hat. Wählen Sie in der Liste Rolle auswählen die Option Workflows > Workflows-Aufrufer aus.

      Wenn Sie eine Produktionsanwendung entwickeln, gewähren Sie immer die geringstmöglichen Rollen. Weitere Informationen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

    6. Klicken Sie auf Fertig.

  3. Damit das Hauptkonto, das Ihre Eventarc-Befehle ausführt, als IAM-Dienstkonto (Identity and Access Management) fungieren kann, weisen Sie eine Rolle zu, mit der das Hauptkonto die Identität des Dienstes übernehmen kann.

Trigger konfigurieren

  1. Wenn Sie noch keinen Workflow haben, den Sie auslösen möchten, erstellen und implementieren Sie einen.

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

    Zur Seite "Workflows"

  3. Wählen Sie auf der Seite „Workflows“ einen Workflow aus, um dessen Detailseite aufzurufen.

  4. Klicken Sie auf der Seite Workflow-Details auf Ausführen.

  5. Wählen Sie auf der Seite Workflow bearbeiten die Option Neuen Trigger hinzufügen > Eventarc aus.

    Der Bereich Eventarc-Trigger wird geöffnet.

  6. Folgen Sie der Anleitung zum Erstellen eines Triggers für bestimmte Anbieter, Ereignistypen undWorkflows -Ziele und lesen Sie die Anleitung in der Konsole im Abschnitt „Trigger erstellen“.

  7. Wählen Sie das Dienstkonto aus, das Ihren Workflow aufruft.

    Dies gibt das IAM-Dienstkonto an, dem Sie zuvor die Rolle workflows.invoker zugewiesen haben, damit das Konto die Berechtigung zum Auslösen Ihres Workflows hat.

  8. Klicken Sie auf Trigger speichern.

    Der Eventarc-Trigger wird auf der Seite Workflow-Details auf dem Tab Trigger aufgeführt.

  9. Wenn Sie den Trigger aktualisieren oder löschen möchten, müssen Sie den Workflow bearbeiten:

    1. Klicken Sie auf der Seite Workflow-Details auf Ausführen.
    2. Suchen Sie im Abschnitt Trigger nach dem Trigger, den Sie aktualisieren oder löschen möchten.
    3. Klicken Sie auf Ressource bearbeiten oder auf Ressource löschen.

Die Ausführung des Workflows wird jetzt durch Ereignisse ausgelöst, die den Filterkriterien des Triggers entsprechen.

Trigger mit Terraform erstellen

Sie können mit Terraform einen Trigger für einen Workflow erstellen. Weitere Informationen finden Sie unter Workflow mit Eventarc und Terraform auslösen.

Nächste Schritte