Dataflow-Jobs mit Eventarc verwalten

In diesem Dokument wird beschrieben, wie Sie ereignisgesteuerte Workflows erstellen, die durch Statusänderungen in Ihren Dataflow-Jobs ausgelöst werden.

Ihr Workflow könnte beispielsweise:

  • Senden eine Benachrichtigung an einen Entwickler im Bereitschaftsdienst, wenn ein kritischer Job fehlschlägt.
  • Nutzer benachrichtigen, wenn ein Batchjob abgeschlossen ist, oder einen anderen Dataflow-Job starten.
  • Ressourcen bereinigen, die von einem Job verwendet werden, z. B. Cloud Storage-Buckets.

Übersicht

Eventarc ist ein Google Cloud -Dienst, der Ereignisse von anderen Diensten abhören und an verschiedene Ziele weiterleiten kann.

Wenn Sie einen Dataflow-Job ausführen, durchläuft er verschiedene Status wie JOB_STATE_QUEUED, JOB_STATE_RUNNING und JOB_STATE_DONE. Mit der Dataflow-Integration in Eventarc können Sie eine Aktion auslösen, wenn sich der Status eines Jobs ändert.

Da Eventarc ein verwalteter Dienst ist, müssen Sie die zugrunde liegende Infrastruktur nicht bereitstellen oder verwalten.

Hinweise

  1. Sign in to your Google Cloud Platform account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Eventarc APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Eventarc APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  8. Damit Sie die Eventarc API verwenden können, muss Ihr Projekt ein Kontingent haben. Außerdem muss das mit dem Eventarc-Trigger verknüpfte Dienstkonto die erforderlichen Berechtigungen haben.

    Ereignisziel auswählen

    Wählen Sie ein Ereignisziel aus, an das das Ereignis gesendet werden soll. Das Ziel bestimmt den nächsten Schritt in Ihrem Workflow.

    Beispiele:

    • Wenn Sie eine SMS-Benachrichtigung senden möchten, können Sie mit Cloud Run Functions einen eigenständigen HTTP-Trigger erstellen.
    • Für einen komplexeren Workflow können Sie Workflows verwenden.
    • Wenn Ihre Dataflow-Pipeline Teil einer größeren Lösung ist, die in Google Kubernetes Engine ausgeführt wird, kann der Trigger das Ereignis an einen GKE-Dienst weiterleiten, der in Ihrem Cluster ausgeführt wird.

    Weitere Informationen zu dieser Art von Architektur finden Sie in der Eventarc-Dokumentation unter Ereignisgesteuerte Architekturen.

    Trigger erstellen

    Informationen zum Erstellen eines Eventarc-Triggers für Dataflow-Jobstatusänderungen finden Sie in einem der folgenden Dokumente:

    Optional können Sie Ereignisse nach Dataflow-Job-ID filtern. Sie können beispielsweise Job-IDs auswählen, die einem regulären Ausdruck entsprechen. Weitere Informationen finden Sie unter Informationen zu Pfadmustern.

    Ereignisse verarbeiten

    Die Ereignisdaten beschreiben den Dataflow-Job zum Zeitpunkt des Auslösens des Ereignisses. Die Nutzlast ähnelt dem Ressourcentyp Job, wobei die Felder steps, pipeline_description und transform_name_mapping ausgelassen werden. Je nach Jobstatus sind möglicherweise einige Felder nicht vorhanden.

    Im Folgenden sehen Sie ein Beispiel für eine Nutzlast:

    {
      "id":"2023-04-13_16_28_37-12345678",
      "projectId":"my-project",
      "name":"job1",
      "currentState":"JOB_STATE_QUEUED",
      "currentStateTime":"2023-04-13T23:28:37.437622Z",
      "createTime":"2023-04-13T23:28:37.437622Z",
      "location":"us-central1",
      "startTime":"2023-04-13T23:28:37.437622Z"
    }
    

    Weitere Informationen zu Jobstatus finden Sie in den folgenden Themen:

    Nächste Schritte