Ce document explique comment créer des workflows basés sur des événements déclenchés par des changements d'état dans vos jobs Dataflow.
Par exemple, votre workflow peut :
- Envoyer une alerte à un ingénieur d'astreinte en cas d'échec d'un job critique.
- Notifier les utilisateurs lorsqu'un job par lot est terminé, ou démarrer un autre job Dataflow.
- Nettoyer les ressources utilisées par un job, telles que les buckets Cloud Storage.
Présentation
Eventarc est un service Google Cloud qui peut écouter des événements provenant d'autres services et les acheminer vers différentes destinations.
Lorsque vous exécutez un job Dataflow, celui-ci passe par différents états, tels que JOB_STATE_QUEUED
, JOB_STATE_RUNNING
et JOB_STATE_DONE
.
L'intégration de Dataflow à Eventarc vous permet de déclencher une action lorsqu'un job change d'état.
Eventarc étant un service géré, vous n'avez pas besoin de provisionner ou de gérer l'infrastructure sous-jacente.
Avant de commencer
- Sign in to your Google Cloud 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.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Eventarc APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Eventarc APIs.
Pour utiliser l'API Eventarc, votre projet doit disposer d'un quota suffisant. En outre, le compte de service associé au déclencheur Eventarc doit disposer des autorisations appropriées.
Choisir la destination de l'événement
Choisissez une destination d'événement à laquelle l'événement sera envoyé. La destination détermine l'étape suivante de votre workflow.
Exemple :
- Pour envoyer une alerte par SMS, vous pouvez utiliser Cloud Run Functions pour créer un déclencheur HTTP autonome.
- Pour un workflow plus complexe, vous pouvez utiliser Workflows.
- Si votre pipeline Dataflow fait partie d'une solution plus importante qui s'exécute sur Google Kubernetes Engine, le déclencheur peut acheminer l'événement vers un service GKE exécuté dans votre cluster.
Pour plus d'informations sur ce style d'architecture, consultez la section Architectures basées sur des événements dans la documentation Eventarc.
Créer un déclencheur
Pour créer un déclencheur Eventarc lié aux changements d'état des jobs Dataflow, consultez l'un des documents suivants :
- Router des événements Dataflow vers Cloud Run
- Router des événements Dataflow vers Google Kubernetes Engine
- Router des événements Dataflow vers Workflows
- Créer un déclencheur pour les fonctions Cloud Run
Vous pouvez éventuellement filtrer les événements par ID de job Dataflow. Par exemple, vous pouvez sélectionner des ID de job correspondant à une expression régulière. Pour en savoir plus, consultez la page Comprendre les formats de chemin d'accès.
Traiter les événements
Les données d'événement décrivent le job Dataflow au moment où l'événement a été déclenché. La charge utile est semblable au type de ressource Job
, avec les champs steps
, pipeline_description
et transform_name_mapping
omis. De plus, en fonction de l'état du job, certains champs peuvent ne pas être présents.
Voici un exemple de charge utile :
{
"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"
}
Pour plus d'informations sur les états des jobs, consultez les rubriques suivantes :