Un déclencheur Eventarc déclare votre intérêt pour un événement ou un ensemble d'événements spécifique. Vous pouvez configurer le routage d'événements en spécifiant des filtres pour le déclencheur, y compris la source de l'événement et le workflow cible.
Les événements sont envoyés 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. Assurez-vous que la taille de l'événement ne dépasse pas 512 Ko. Les événements supérieurs à la taille maximale des arguments Workflows ne déclenchent pas d'exécution de workflow.
Ces instructions vous expliquent comment configurer le routage d'événements afin qu'une exécution de votre workflow soit déclenchée en réponse à un événementFirebase Alerts direct. Pour en savoir plus, consultez la liste des événements directs compatibles. Les requêtes adressées à votre service sont déclenchées en réponse à un événement lorsqu'une alerte Firebase est publiée par un service Firebase.Préparer la création d'un déclencheur
Avant de créer un déclencheur Eventarc pour un workflow cible, effectuez les tâches suivantes.
Console
Dans la console Google Cloud, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.
Activez les API Eventarc, Eventarc Publishing, Workflows et Workflow Executions.
Le cas échéant, activez l'API associée aux événements directs. Par exemple, pour les événements Firebase Alerts , activez l'APIFirebase Alerts .
Si vous n'en avez pas encore, créez un compte de service géré par l'utilisateur, puis accordez-lui les rôles et les autorisations nécessaires pour qu'Eventarc puisse gérer les événements pour un workflow cible.
Dans la console Google Cloud, accédez à la page Comptes de service.
Sélectionnez votre projet.
Dans le champ Nom du compte de service, saisissez un nom. La console Google Cloud remplit le champ ID du compte de service en fonction de ce nom.
Dans le champ Description du compte de service, saisissez une description. Exemple :
Service account for event trigger
.Cliquez sur Créer et continuer.
Pour fournir un accès approprié, dans la liste Sélectionner un rôle, sélectionnez les rôles IAM (Identity and Access Management) requis à attribuer à votre compte de service. Pour en savoir plus, consultez la page Rôles et autorisations pour les cibles Workflows.
Pour ajouter des rôles supplémentaires, cliquez sur
Ajouter un autre rôle et ajoutez chaque rôle supplémentaire.Cliquez sur Continuer.
Pour terminer la création du compte, cliquez sur OK.
gcloud
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Activez les API Eventarc, Eventarc Publishing, Workflows et Workflow Executions :
gcloud services enable eventarc.googleapis.com \ eventarcpublishing.googleapis.com \ workflows.googleapis.com \ workflowexecutions.googleapis.com
Le cas échéant, activez l'API associée aux événements directs. Par exemple, pour les événements Firebase Alerts , activez
firestore.googleapis.com
.Si vous n'en avez pas encore, créez un compte de service géré par l'utilisateur, puis accordez-lui les rôles et les autorisations nécessaires pour qu'Eventarc puisse gérer les événements pour un workflow cible.
Créez le compte de service :
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Remplacez
SERVICE_ACCOUNT_NAME
par le nom du compte de service. Il doit comporter entre 6 et 30 caractères alphanumériques pouvant inclure des minuscules et des tirets. Une fois le compte de service créé, vous ne pouvez pas en modifier le nom.Attribuez les rôles ou les autorisations IAM (Identity and Access Management) requis. Pour en savoir plus, consultez la page Rôles et autorisations pour les cibles Workflows.
Créer un déclencheur
Vous pouvez créer un déclencheur Eventarc avec un workflow déployé en tant que récepteur d'événements à l'aide de Google Cloud CLI (gcloud
ou Terraform) ou via la console Google Cloud.
Console
- Dans la console Google Cloud, accédez à la page Déclencheurs d'Eventarc.
- Cliquez sur Créer un déclencheur.
- Saisissez un nom de déclencheur
Il s'agit de l'ID du déclencheur, qui doit commencer par une lettre. Il peut contenir jusqu'à 63 lettres minuscules, chiffres ou traits d'union.
- Pour le champ Type de déclencheur, sélectionnez Sources Google.
- Dans la liste Fournisseur d'événements, sélectionnez Firebase Alerts.
Notez que le nom du fournisseur d'événements utilisé dans la documentation Google Cloud associée peut ne pas avoir le préfixe Cloud ou Google Cloud. Par exemple, sur la console, Memorystore pour Redis est appelé Google Cloud Memorystore pour Redis.
- Dans la liste Type d'événement, sélectionnez un type d'événement parmi les événements directs.
- Pour spécifier l'encodage de la charge utile de l'événement, sélectionnez application/json ou application/protobuf dans la liste Type de contenu des données d'événement.
Notez que la taille d'une charge utile d'événement au format JSON est supérieure à celle au format Protobuf. Cela peut avoir un impact sur la fiabilité en fonction de la destination de l'événement et de ses limites de taille. Pour en savoir plus, consultez la section Problèmes connus.
- Dans la liste Région, sélectionnez monde (Monde).
Pour en savoir plus, consultez la page Emplacements Eventarc.
- Dans le champ Attribut 1, l'ID de ressource alerttype agit comme un filtre d'événement. Sélectionnez un opérateur pour ce filtre :
- Égal à
- Format de chemin d'accès
Pour en savoir plus, consultez la page Comprendre les formats de chemin d'accès.
- Dans le champ Valeur d'attribut 1, sélectionnez l'une des options suivantes :
appDistribution.inAppFeedback
: l'événement est envoyé lorsqu'un testeurs envoie des commentaires dans l'application pour une application donnée.appDistribution.newTesterIosDevice
: l'événement est envoyé lorsqu'un nouvel appareil de test iOS est enregistré pour une application donnée.billing.planAutomatedUpdate
: l'événement est envoyé lorsque le mode de facturation d'un projet Firebase est automatiquement mis à jour. Par exemple, lorsqu'un forfait est rétrogradé en raison de problèmes de paiement.billing.planUpdate
: l'événement est envoyé lorsque le mode de facturation d'un projet Firebase est modifié par un utilisateur. Par exemple, lorsqu'un compte de facturation est associé ou dissocié d'un projet.crashlytics.missingSymbolFile
: l'événement est envoyé lorsque Firebase Crashlytics détermine qu'il ne possède pas les symboles de débogage appropriés pour signaler un rapport d'erreur entrant.crashlytics.newAnrIssue
: l'événement est envoyé lorsqu'une application rencontre une nouvelle erreur ANR (pas pour les événements ultérieurs identiques).crashlytics.newFatalIssue
: l'événement est envoyé lorsqu'une application subit un nouveau plantage fatal (pas pour des événements ultérieurs identiques).crashlytics.newNonfatalIssue
: l'événement est envoyé lorsqu'une application rencontre une nouvelle erreur non fatale (et non pour des événements ultérieurs identiques).crashlytics.regression
: l'événement est envoyé lorsqu'une application rencontre un plantage pour un problème marqué comme fermé pour une version précédente de l'application.crashlytics.stabilityDigest
: l'événement est envoyé lorsqu'il existe une notification concernant les problèmes les plus courants dans Crashlytics.crashlytics.velocity
: événement envoyé lorsqu'un seul problème est responsable du plantage d'un grand nombre de sessions d'application.performance.threshold
: l'événement est envoyé lorsque les performances d'une métrique dépassent le seuil défini.
- Vous pouvez éventuellement filtrer les événements pour un ID d'application Firebase spécifique. Cliquez sur add Ajouter un filtre et spécifiez l'ID de l'application.
- Sélectionnez le compte de service qui appellera votre service ou workflow.
Vous pouvez également créer un nouveau compte de service.
Cela spécifie l'adresse e-mail du compte de service Identity and Access Management (IAM) associée au déclencheur et auquel vous avez précédemment attribué les rôles spécifiques requis par Eventarc.
- Dans la liste Destination de l'événement, sélectionnez Workflows.
- Sélectionner un workflow.
Il s'agit du nom du workflow auquel transmettre les événements. Les événements d'exécution d'un workflow sont transformés et transmis au workflow en tant qu'arguments d'environnement d'exécution.
Pour en savoir plus, consultez la page Créer un déclencheur pour Workflows.
- Cliquez sur Créer.
Une fois le déclencheur créé, vous ne pouvez plus modifier les filtres de source d'événement. À la place, vous devez créer un nouveau déclencheur et supprimer l'ancien. Pour en savoir plus, consultez la section Gérer les déclencheurs.
gcloud
gcloud eventarc triggers create TRIGGER \ --location=global \ --destination-workflow=DESTINATION_WORKFLOW \ --destination-workflow-location=DESTINATION_WORKFLOW_LOCATION \ --event-filters="type=google.firebase.firebasealerts.alerts.v1.published" \ --event-filters="alerttype=ALERT_TYPE" \ --event-data-content-type="EVENT_DATA_CONTENT_TYPE" \ --service-account="MY_SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com"
Remplacez les éléments suivants :
TRIGGER
: ID du déclencheur ou un identifiant complet.-
DESTINATION_WORKFLOW
: ID du workflow déployé qui reçoit les événements du déclencheur. Le workflow peut se trouver dans l'un des emplacements compatibles avec Workflows et ne doit pas nécessairement se trouver au même emplacement que le déclencheur. Cependant, le workflow doit se trouver dans le même projet que le déclencheur. -
DESTINATION_WORKFLOW_LOCATION
(facultatif) : emplacement dans lequel le workflow de destination est déployé. Si la valeur n'est pas spécifiée, il est supposé que le workflow se trouve au même emplacement que le déclencheur. ALERT_TYPE
: type d'alerte Firebase, peut être l'un des suivants :appDistribution.inAppFeedback
: l'événement est envoyé lorsqu'un testeurs envoie des commentaires dans l'application pour une application donnée.appDistribution.newTesterIosDevice
: l'événement est envoyé lorsqu'un nouvel appareil de test iOS est enregistré pour une application donnée.billing.planAutomatedUpdate
: l'événement est envoyé lorsque le mode de facturation d'un projet Firebase est automatiquement mis à jour. Par exemple, lorsqu'un forfait est rétrogradé en raison de problèmes de paiement.billing.planUpdate
: l'événement est envoyé lorsque le mode de facturation d'un projet Firebase est modifié par un utilisateur. Par exemple, lorsqu'un compte de facturation est associé ou dissocié d'un projet.crashlytics.missingSymbolFile
: l'événement est envoyé lorsque Firebase Crashlytics détermine qu'il ne possède pas les symboles de débogage appropriés pour signaler un rapport d'erreur entrant.crashlytics.newAnrIssue
: l'événement est envoyé lorsqu'une application rencontre une nouvelle erreur ANR (pas pour les événements ultérieurs identiques).crashlytics.newFatalIssue
: l'événement est envoyé lorsqu'une application subit un nouveau plantage fatal (pas pour des événements ultérieurs identiques).crashlytics.newNonfatalIssue
: l'événement est envoyé lorsqu'une application rencontre une nouvelle erreur non fatale (et non pour des événements ultérieurs identiques).crashlytics.regression
: l'événement est envoyé lorsqu'une application rencontre un plantage pour un problème marqué comme fermé pour une version précédente de l'application.crashlytics.stabilityDigest
: l'événement est envoyé lorsqu'il existe une notification concernant les problèmes les plus courants dans Crashlytics.crashlytics.velocity
: événement envoyé lorsqu'un seul problème est responsable du plantage d'un grand nombre de sessions d'application.performance.threshold
: l'événement est envoyé lorsque les performances d'une métrique dépassent le seuil défini.
ALERT_TYPE
doit être l'un des suivants :- Égal à. Par exemple :
--event-filters="alerttype=appDistribution.inAppFeedback"
- Format de chemin Par exemple,
--event-filters-path-pattern="alerttype=appDistribution."
ou--event-filters-path-pattern="alerttype=crashlytics.new
"
.Pour en savoir plus, consultez la page Comprendre les formats de chemin d'accès.
-
EVENT_DATA_CONTENT_TYPE
: (facultatif) encodage de la charge utile de l'événement. Peut être défini surapplication/json
ouapplication/protobuf
. L'encodage par défaut estapplication/json
.Notez que la taille d'une charge utile d'événement au format JSON est supérieure à celle au format Protobuf. Cela peut avoir un impact sur la fiabilité en fonction de la destination de l'événement et de ses limites de taille. Pour en savoir plus, consultez la section Problèmes connus.
-
SERVICE_ACCOUNT_NAME
: nom du compte de service IAM que vous avez créé et auquel vous avez attribué des rôles spécifiques requis par Workflows. -
PROJECT_ID
: ID de votre projet Google Cloud
Remarques :
- L'option
--location
doit êtreglobal
. Pour en savoir plus, consultez la page Emplacements Eventarc. - Ces options sont obligatoires :
--event-filters="type=google.firebase.firebasealerts.alerts.v1.published"
--event-filters="alerttype=ALERT_TYPE"
ou--event-filters-path-pattern="alerttype=ALERT_TYPE"
- Une fois le déclencheur créé, le type de filtre d'événements ne peut plus être modifié. Pour un type d'événement différent, vous devez créer un déclencheur.
- Vous pouvez éventuellement filtrer les événements pour un ID d'application Firebase spécifique à l'aide de l'option
--event-filters="appid=APP_ID"
et en spécifiant une correspondance exacte. -
--service-account
: adresse e-mail du compte de service IAM que votre déclencheur Eventarc utilisera pour appeler les exécutions de workflow. Nous vous recommandons vivement d'utiliser un compte de service ne bénéficiant que des privilèges les plus faibles nécessaires pour accéder aux ressources requises. Pour en savoir plus sur les comptes de service, consultez la page Créer et gérer des comptes de service. - Par défaut, les abonnements Pub/Sub créés pour Eventarc persistent, quelle que soit l'activité, et n'expirent pas. Pour modifier la durée d'inactivité, consultez la section Propriétés de l'abonnement.
Exemple :
gcloud eventarc triggers create firealerts-workflows-trigger \ --location=global \ --destination-workflow=my-workflow \ --destination-workflow-location=europe-west4 \ --event-filters="type=google.firebase.firebasealerts.alerts.v1.published" \ --event-filters="alerttype=crashlytics.velocity" \ --service-account="${SERVICE_ACCOUNT_NAME}@${PROJECT_ID}.iam.gserviceaccount.com"
Cette commande crée un déclencheur appelé firealerts-workflows-trigger
pour l'événement identifié comme google.firebase.firebasealerts.alerts.v1.published
et pour un type d'alerte crashlytics.velocity
.
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.
Répertorier un déclencheur
Vous pouvez confirmer la création d'un déclencheur en répertoriant les déclencheurs Eventarc à l'aide de Google Cloud CLI ou de la console Google Cloud.
Console
Dans la console Google Cloud, accédez à la page Déclencheurs d'Eventarc.
Accéder à la page "Déclencheurs"
Cette page répertorie vos déclencheurs dans tous les emplacements et inclut des détails tels que les noms, les régions, les fournisseurs d'événements, les destinations, etc.
Pour filtrer vos déclencheurs, procédez comme suit :
- Cliquez sur Filtrer ou sur le champ Filtrer les déclencheurs.
- Dans la liste Propriétés, sélectionnez une option permettant de filtrer les déclencheurs.
Vous pouvez sélectionner une seule propriété ou utiliser l'opérateur logique
OR
pour ajouter d'autres propriétés.Pour trier vos déclencheurs, à côté d'un en-tête de colonne compatible, cliquez sur
Trier.
gcloud
Exécutez la commande suivante pour répertorier vos déclencheurs :
gcloud eventarc triggers list --location=-
Cette commande répertorie vos déclencheurs dans tous les emplacements et inclut des détails tels que les noms, les types, les destinations et les états.