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 destinataires 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 comme argument d'environnement d'exécution du workflow.
L'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 déclenchez des workflows avec des événements directs à partir de Cloud Storage.
- Par les 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, 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 ultérieurement. Pour en savoir plus, consultez la section Stratégie de nouvelle tentative d'exécution des événements.
La fenêtre de déduplication Workflows pour garantir le traitement des événements une seule fois est de 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 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 que des abonnements push Pub/Sub 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 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 gcloud dans 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 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 (Workflows) de la console Google Cloud.
Avant de commencer
-
Enable the Eventarc and Pub/Sub APIs.
Créez un compte de service afin qu'Eventarc puisse envoyer des requêtes à l'API Workflows:
Dans Google Cloud Console, accédez à la page Comptes de service.
Sélectionnez un projet, puis cliquez sur Créer un compte de service.
Dans le champ Nom du compte de service, saisissez un nom composé de 6 à 30 caractères.
Il peut contenir des caractères alphanumériques minuscules et des tirets. Une fois le compte de service créé, vous ne pouvez pas en modifier le nom.
Cliquez sur Créer et continuer.
Attribuez le rôle workflows.invoker à votre nouveau compte de service afin qu'il soit autorisé à déclencher votre workflow. Dans la liste Sélectionner un rôle, sélectionnez Workflows > Workflows Invoker (Workflows > Demandeur de workflow).
Si vous développez une application de production, accordez toujours les rôles les moins permissifs possibles. Pour en savoir plus, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Cliquez sur OK.
Pour autoriser le compte principal qui exécutera vos commandes Eventarc à agir en tant que compte de service Identity and Access Management (IAM), attribuez un rôle permettant au compte principal d'emprunter l'identité du compte de service.
Configurer le déclencheur
Si vous ne disposez pas encore d'un workflow que vous souhaitez déclencher, créez-en un et déployez-le.
Dans Google Cloud Console, accédez à la page Workflows :
Sur la page "Workflows", sélectionnez un workflow pour accéder à sa page d'informations.
Sur la page Détails du workflow, cliquez sur edit Modifier.
Sur la page Modifier le workflow, sélectionnez Ajouter un déclencheur > Eventarc.
Le volet Déclencheur Eventarc s'ouvre.
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".
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.Cliquez sur Enregistrer le déclencheur.
Le déclencheur Eventarc est répertorié dans l'onglet Triggers (Déclencheurs) de la page Workflows Details (Détails des workflows).
Si vous souhaitez mettre à jour ou supprimer le déclencheur, vous devez modifier le workflow:
- Sur la page Détails du workflow, cliquez sur edit Modifier.
- Dans la section Déclencheurs, recherchez le déclencheur que vous souhaitez modifier ou supprimer.
- Cliquez sur edit Modifier la ressource ou sur delete 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.