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 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 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 distribués dès le début de l'exécution du workflow, et l'exécution réelle se produit de manière asynchrone dans les services Workflows.

  • 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 seule fois le traitement des événements dure 24 heures.

  • Lorsque vous utilisez Workflows comme destination d'un déclencheur Eventarc, les événements supérieurs à la taille maximale de l'argument Workflows ne déclenchent pas d'exécution 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 le transfert pour le point de terminaison Workflows doit être incluse dans périmètre de service. Pour en savoir plus, consultez la section 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 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. Enable the Eventarc and Pub/Sub APIs.

    Enable the APIs

  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é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 la page 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 spécifie le compte de service IAM auquel vous avez précédemment attribué le rôle workflows.invoker afin qu'il soit autorisé à 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 modifier 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 aux critères de filtrage 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.

Étape suivante