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
- 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.
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
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 theserviceusage.services.enablepermission. Learn how to grant roles. -
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
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 theserviceusage.services.enablepermission. Learn how to grant roles. - 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.
- Dataflow-Ereignisse an Cloud Run weiterleiten
- Dataflow-Ereignisse an Google Kubernetes Engine weiterleiten
- Dataflow-Ereignisse an Workflows weiterleiten
- Trigger für Cloud Run-Funktionen erstellen
- Dataflow-Pipeline-Workflows entwerfen
- Lesen Sie die Eventarc-Dokumentation.
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:
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: