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 le résultat d'un événement ou d'un ensemble d'événements. Les événements sont acheminés à partir d'un événement 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 à un objet JSON (selon le spécification CloudEvents) et transmet l'événement à l'exécution du workflow argument d'exécution du workflow.

Une exécution de votre workflow est déclenchée:

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

Veuillez noter les points suivants :

  • Les événements sont considérés comme diffusés dès que l'exécution du workflow commence. l'exécution a lieu de manière asynchrone dans Workflows services.

  • Les exécutions déclenchées par des événements ne sont pas relancées si l'exécution du workflow démarre, mais échoue plus tard. Pour en savoir plus, consultez les Règle de nouvelle tentative d'événement.

  • Fenêtre de déduplication des workflows pour s'assurer qu'une tâche de type "exactement une fois" le traitement des événements dure 24 heures.

  • Lorsque vous utilisez Workflows comme destination d'une Déclencheur Eventarc, événements d'une taille supérieure à la valeur maximale La taille de l'argument Workflows ne pourra pas déclencher 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, lorsque vous acheminez des événements vers Destinations de workflows pour lesquelles le Pub/Sub le point de terminaison push est défini sur une exécution Workflows, vous ne pouvez créer des abonnements push Pub/Sub via Eventarc Notez que le compte de service utilisé pour l'envoi pour le point de terminaison Workflows doit être incluse dans périmètre de service. Pour en savoir plus, consultez Configurez 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 de gcloud de la section déclencheur" lorsque créer un déclencheur pour un fournisseur, un type d'événement et une destination 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 le Workflows de la console Google Cloud.

Avant de commencer

  1. Activer les API Eventarc and Pub/Sub.

    Activer les API

  2. créer 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 compris entre 6 et 30 caractères

      Il peut contenir des caractères alphanumériques en minuscules et 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 au nouveau compte de service le rôle workflows.invoker, de sorte que est autorisé à déclencher votre workflow. Dans la section Sélectionnez 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 votre Eventarc d'agir en tant que service IAM (Identity and Access Management) compte, accordez un rôle permettant au compte principal d'emprunter l'identité du compte de service.

Configurer le déclencheur

  1. Si vous n'avez pas encore de workflow à déclencher, créez-en une et déployez-en une.

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

    Accéder à "Workflows"

  3. Sur la page "Workflows", sélectionnez un workflow pour en afficher les détails. .

  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 destinationWorkflows 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.

    Cela permet de spécifier le compte de service IAM auquel le rôle workflows.invoker a déjà été attribué au compte l'autorisation de déclencher votre workflow.

  8. Cliquez sur Enregistrer le déclencheur.

    Le déclencheur Eventarc est répertorié dans la section Déclencheurs. de la page Workflows Details (Détails du workflow).

  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 correspondant à l'état critères de filtre.

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.

Étape suivante