Déclencher un workflow avec des événements ou des messages Pub/Sub

Vous pouvez utiliser un déclencheur Eventarc pour exécuter un workflow à la suite d'un événement ou d'un ensemble d'événements. Les événements sont acheminés d'un fournisseur d'événements vers les récepteurs d'événements intéressés.

Eventarc fournit des événements au destinataire d'événements au format CloudEvents via une requête HTTP. Le service Workflows convertit l'événement en objet JSON (conformément à la spécification CloudEvents) et transmet l'événement à l'exécution du workflow en tant qu'argument d'environnement d'exécution de workflow.

Une exécution de votre workflow se déclenche:

  • Lorsqu'un journal d'audit est créé qui correspond aux critères de filtre du déclencheur. Par exemple, consultez ce guide de démarrage rapide dans lequel vous déclenchez des workflows avec des événements de BigQuery à l'aide de Cloud Audit Logs.
  • En réponse à des événements directs tels qu'une mise à jour d'un bucket Cloud Storage ou d'un modèle Firebase Remote Config. Par exemple, consultez ce guide de démarrage rapide dans lequel vous déclenchez Workflows avec des événements directs depuis Cloud Storage.
  • Par des messages publiés dans un sujet Pub/Sub. Par exemple, consultez ce guide de démarrage rapide dans lequel vous déclenchez des workflows avec des messages Pub/Sub.

Veuillez noter les points suivants :

  • Les événements sont considérés comme distribués dès le début de l'exécution du workflow. L'exécution réelle a lieu de manière asynchrone dans les services Workflows.

  • Les exécutions déclenchées par des événements ne font pas l'objet d'une nouvelle tentative si l'exécution du workflow démarre, mais échoue ultérieurement. Pour en savoir plus, consultez la Règle concernant les nouvelles tentatives d'événements.

  • Lorsque vous utilisez Workflows comme destination d'un déclencheur Eventarc, les événements dont la taille dépasse la taille maximale d'argument Workflows ne déclenchent pas les exécutions de workflow. Pour en savoir plus, consultez la page Quotas et limites.

  • Dans les projets protégés par un périmètre de service, lors du routage d'événements vers des destinations Workflows pour lesquelles le point de terminaison push Pub/Sub est défini sur une exécution Workflows, vous ne pouvez créer des abonnements push Pub/Sub que via Eventarc. Notez que le compte de service utilisé pour l'authentification push pour le point de terminaison Workflows doit être inclus dans le périmètre de service. Pour en savoir plus, consultez la page Configurer un périmètre de service à l'aide de VPC Service Controls.

Créer un déclencheur à l'aide de Google Cloud CLI

Vous pouvez créer un déclencheur en exécutant une commande gcloud eventarc triggers create, associée aux options obligatoires et facultatives.

Pour en savoir plus, consultez les instructions gcloud de la section "Créer un déclencheur" lorsque vous créez un déclencheur pour un fournisseur, un type d'événement et une destination de workflows spécifiques.

Créer un déclencheur à l'aide de la console

Les étapes suivantes vous expliquent comment créer un déclencheur sur la page Workflows de la console Google Cloud.

Avant de commencer

  1. Activer les API Eventarc and Pub/Sub.

    Activer les API

  2. Créez un compte de service afin qu'Eventarc puisse envoyer des requêtes à l'API Workflows:

    1. Dans Google Cloud Console, accédez à la page Comptes de service.

      Accéder à la page "Comptes de service"

    2. Sélectionnez un projet, puis cliquez sur Créer un compte de service.

    3. Dans le champ Nom du compte de service, saisissez un nom comprenant entre 6 et 30 caractères.

      Il peut contenir des caractères alphanumériques en minuscules et des tirets. Une fois le compte de service créé, vous ne pouvez pas en modifier le nom.

    4. Cliquez sur Créer et continuer.

    5. Attribuez à votre nouveau compte de service le rôle workflows.invoker afin qu'il soit autorisé à déclencher votre workflow. Dans la liste Sélectionner un rôle, sélectionnez Workflows > Demandeur de workflows.

      Si vous développez une application de production, accordez toujours les rôles les moins permissifs possible. Pour en savoir plus, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

    6. Cliquez sur OK.

  3. Pour autoriser le compte principal qui exécutera vos commandes Eventarc à agir en tant que compte de service Identity and Access Management (IAM), accordez-lui un rôle lui permettant d'emprunter l'identité du compte de service.

Configurer le déclencheur

  1. Si vous ne souhaitez pas déclencher de workflow, créez-en un et déployez-le.

  2. Dans Google Cloud Console, accédez à la page Workflows :

    Accéder à "Workflows"

  3. Sur la page "Workflows", sélectionnez un workflow pour accéder à sa page d'informations.

  4. Sur la page Détails du workflow, cliquez sur Modifier.

  5. Sur la page Modifier le workflow, sélectionnez Ajouter un déclencheur > Eventarc.

    Le volet Déclencheur Eventarc s'ouvre.

  6. Suivez les instructions pour créer un déclencheur pour un fournisseur, un type d'événement et une destination Workflows spécifiques, et reportez-vous aux instructions de la console dans la section "Créer un déclencheur".

  7. Sélectionnez le compte de service qui appelle votre workflow.

    Ce champ spécifie le compte de service IAM auquel vous avez précédemment attribué le rôle workflows.invoker, afin que le compte soit autorisé à déclencher votre workflow.

  8. Cliquez sur Enregistrer le déclencheur.

    Le déclencheur Eventarc est répertorié dans l'onglet Déclencheurs de la page Détails des workflows.

  9. Si vous souhaitez mettre à jour ou supprimer le déclencheur, vous devez modifier le workflow:

    1. Sur la page Détails du workflow, cliquez sur Modifier.
    2. Dans la section Déclencheurs, recherchez le déclencheur que vous souhaitez mettre à jour ou supprimer.
    3. Cliquez sur Modifier la ressource ou Supprimer la ressource.

L'exécution de votre workflow est désormais déclenchée par les événements qui correspondent aux critères de filtre de votre déclencheur.

Créer un déclencheur à l'aide de Terraform

Vous pouvez créer un déclencheur pour un workflow à l'aide de Terraform. Pour en savoir plus, consultez la page Déclencher un workflow à l'aide d'Eventarc et Terraform.

Étapes suivantes