Utiliser Eventarc pour gérer des jobs Dataflow

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

  1. Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Vérifiez que la facturation est activée pour votre projet Google Cloud.

  4. Activer les API Eventarc.

    Activer les API

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

    Go to project selector

  6. Vérifiez que la facturation est activée pour votre projet Google Cloud.

  7. Activer les API Eventarc.

    Activer les API

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 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 :

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 :

Étapes suivantes