Créer un déclencheur pour Google Kubernetes Engine (GKE)

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

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 service GKE cible.

Les requêtes adressées à votre service sont déclenchées par les types d'événements suivants :

Avant de commencer

Workload Identity est la solution recommandée pour accéder aux services Google Cloud à partir des applications s'exécutant dans Google Kubernetes Engine (GKE) en raison de ses propriétés de sécurité renforcée et de sa facilité de gestion. Il est également nécessaire de transférer les événements Cloud Run pour Anthos à l'aide d'Eventarc. Assurez-vous que Workload Identity est activé sur votre cluster GKE.

Pour en savoir plus, consultez la page Utiliser Workload Identity.

Préparer la création d'un déclencheur

Pour chaque déclencheur ciblant un service GKE, Eventarc crée un composant de redirecteur d'événement. Eventarc nécessite des autorisations pour installer le composant et gérer les ressources dans le cluster GKE. Avant de créer un déclencheur Eventarc pour les destinations GKE, veillez à effectuer les tâches suivantes.

Activez l'API Eventarc

Pour afficher et attribuer des rôles IAM (Identity and Access Management), vous devez activer l'API Eventarc pour votre projet. Vous ne pouvez pas voir les rôles Eventarc dans la console tant que vous n'avez pas activé l'API.

gcloud services enable eventarc.googleapis.com

Accorder le rôle utilisateur requis

Attribuez le rôle Administrateur Eventarc (roles/eventarc.admin) à l'utilisateur :

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=PRINCIPAL \
    --role="roles/eventarc.admin"

Remplacez les valeurs suivantes :

  • PROJECT_ID : ID de projet Google Cloud.
  • PRINCIPAL : compte principal pour lequel vous souhaitez ajouter la liaison. Il doit être au format user|group|serviceAccount:email ou domain:domain.

    Exemples : user:test-user@gmail.com, group:admins@example.com, serviceAccount:test123@example.domain.com ou domain:example.domain.com.

Créer un compte de service

Créez un compte de service géré par l'utilisateur si vous n'en avez pas déjà un, puis accordez-lui les rôles et les autorisations nécessaires pour qu'Eventarc puisse gérer les événements pour les destinations GKE.

  1. Créez un compte de service utilisé lors de la création de déclencheurs :

    TRIGGER_SA=SA_NAME
    gcloud iam service-accounts create ${TRIGGER_SA}

    Remplacez SA_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.

  2. Attribuez les rôles appropriés au compte de service :

    Événements Cloud Audit Logs

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member "serviceAccount:${TRIGGER_SA}@PROJECT_ID.iam.gserviceaccount.com" \
        --role="roles/pubsub.subscriber"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member "serviceAccount:${TRIGGER_SA}@PROJECT_ID.iam.gserviceaccount.com" \
        --role="roles/monitoring.metricWriter"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member "serviceAccount:${TRIGGER_SA}@PROJECT_ID.iam.gserviceaccount.com" \
        --role="roles/eventarc.eventReceiver"
    

    Événements directs

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member "serviceAccount:${TRIGGER_SA}@PROJECT_ID.iam.gserviceaccount.com" \
        --role="roles/pubsub.subscriber"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member "serviceAccount:${TRIGGER_SA}@PROJECT_ID.iam.gserviceaccount.com" \
        --role="roles/monitoring.metricWriter"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member "serviceAccount:${TRIGGER_SA}@PROJECT_ID.iam.gserviceaccount.com" \
        --role="roles/eventarc.eventReceiver"
    

    Messages Pub/Sub

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member "serviceAccount:${TRIGGER_SA}@PROJECT_ID.iam.gserviceaccount.com" \
        --role="roles/pubsub.subscriber"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member "serviceAccount:${TRIGGER_SA}@PROJECT_ID.iam.gserviceaccount.com" \
        --role="roles/monitoring.metricWriter"
    
    

    Remplacez PROJECT_ID par l'ID de votre projet Google Cloud. Vous pouvez trouver l'ID de votre projet sur la page de Tableau de bord de Google Cloud Console.

  3. Si vous créez un déclencheur pour un événement Cloud Storage direct, attribuez le rôle pubsub.publisher au compte de service Cloud Storage:

    SERVICE_ACCOUNT="$(gsutil kms serviceaccount -p PROJECT_ID)"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:${SERVICE_ACCOUNT}" \
        --role="roles/pubsub.publisher"
    

Activer les destinations GKE

Pour permettre à Eventarc de gérer les ressources du cluster GKE, activez les destinations GKE et liez le compte de service Eventarc aux rôles requis.

  1. Activez les destinations GKE pour Eventarc :

    gcloud eventarc gke-destinations init
    
  2. Lorsque vous êtes invité à lier les rôles requis, saisissez y.

    Les rôles suivants sont liés :

    • roles/compute.viewer
    • roles/container.developer
    • roles/iam.serviceAccountAdmin

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.

Événements Cloud Audit Logs

gcloud eventarc triggers create TRIGGER \
    --location=LOCATION \
    --destination-gke-cluster=DESTINATION_GKE_CLUSTER \
    --destination-gke-location=DESTINATION_GKE_LOCATION \
    --destination-gke-namespace=DESTINATION_GKE_NAMESPACE \
    --destination-gke-service=DESTINATION_GKE_SERVICE \
    --destination-gke-path=DESTINATION_GKE_PATH \
    --event-filters="type=google.cloud.audit.log.v1.written" \
    --event-filters="serviceName=SERVICE_NAME" \
    --event-filters="methodName=METHOD_NAME" \
    --service-account=TRIGGER_SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com

Remplacez les éléments suivants :

  • TRIGGER : l'ID du déclencheur ou un identifiant complet.
  • LOCATION : l'emplacement du déclencheur Eventarc. Pour éviter les problèmes de performances et de résidence des données occasionnés par un déclencheur global, il doit correspondre à l'emplacement du service Google Cloud qui génère les événements. Vous pouvez également définir la propriété eventarc/location (par exemple, gcloud config set eventarc/location us-central1). Pour en savoir plus, consultez la page Emplacements Eventarc.
  • DESTINATION_GKE_CLUSTER: nom du cluster GKE dans lequel le service GKE cible qui reçoit des événements est en cours d'exécution.
  • DESTINATION_GKE_LOCATION: emplacement où se trouve le service GKE de destination. Si elle n'est pas spécifiée, il est supposé que le service se trouve dans la même région que le déclencheur. Pour en savoir plus, consultez la page Emplacements Cloud Run pour Anthos sur Google Cloud.
  • DESTINATION_GKE_NAMESPACE: espace de noms dans lequel le service GKE de destination est exécuté. S'il n'est pas spécifié, l'espace de noms default est utilisé.
  • DESTINATION_GKE_SERVICE: nom du service GKE qui reçoit les événements du déclencheur. Le service peut se trouver dans l'un des emplacements compatibles avec GKE et ne doit pas nécessairement se trouver au même emplacement que le déclencheur. Cependant, le service doit se trouver dans le même projet que le déclencheur et recevoir des événements sous forme de requêtes HTTP POST envoyées à son chemin d'URL racine (/), à chaque déclenchement de l'événement.
  • (Facultatif) DESTINATION_GKE_PATH: chemin d'accès relatif que vous spécifiez sur le service GKE de destination auquel les événements du déclencheur doivent être envoyés. Exemple : /, /route, route, route/subroute.
  • SERVICE_NAME : l'identifiant du service Google Cloud
  • METHOD_NAME : identifiant de l'opération
  • TRIGGER_SERVICE_ACCOUNT: adresse e-mail du compte de service IAM associé au déclencheur et auquel vous avez précédemment attribué des rôles spécifiques requis par Eventarc. Exemple : $TRIGGER_SA@PROJECT_ID.iam.gserviceaccount.com
  • PROJECT_ID : ID de votre projet Google Cloud

Remarques :

  • Ces options sont obligatoires :
    • --event-filters="type=google.cloud.audit.log.v1.written"
    • --event-filters="serviceName=VALUE"
    • --event-filters="methodName=VALUE"
  • Pour obtenir la liste des événements du journal d'audit compatibles avec Eventarc, y compris les valeurs serviceName et methodName, consultez la section Événements compatibles avec Eventarc.
  • Chaque déclencheur peut comporter plusieurs filtres d'événement, spécifiés dans une option --event-filters=[ATTRIBUTE=VALUE,...], en les séparant par une virgule, ou vous pouvez répéter l'option pour ajouter d'autres filtres. Seuls les événements correspondant à tous les filtres sont envoyés à la destination. Les caractères génériques et les expressions régulières ne sont pas acceptés. Consultez la section Déterminer des filtres d'événements pour Cloud Audit Logging.
  • Vous pouvez éventuellement filtrer les événements associés à une ressource spécifique en utilisant l'option --event-filters="resourceName=VALUE" et en spécifiant le chemin d'accès complet à la ressource. Omettez l'option pour les ressources créées de manière dynamique, dont les identifiants sont générés au moment de la création. Vous pouvez également filtrer les événements pour un ensemble de ressources en utilisant l'option --event-filters-path-pattern="resourceName=VALUE" et en spécifiant le modèle de chemin d'accès à la ressource.

Exemple :

  gcloud eventarc triggers create cal-gke-trigger \
      --location=us-central1 \
      --destination-gke-cluster=gke-events-cluster \
      --destination-gke-location=us-central1-a \
      --destination-gke-namespace=default \
      --destination-gke-service=helloworld-events \
      --destination-gke-path=/ \
      --event-filters="type=google.cloud.audit.log.v1.written" \
      --event-filters="serviceName=storage.googleapis.com" \
      --event-filters="methodName=storage.buckets.update" \
      --event-filters="resourceName=projects/_/buckets/eventarc-bucket/objects/random.txt" \
      --service-account=${TRIGGER_SA}@${PROJECT_ID}.iam.gserviceaccount.com

Cela crée un déclencheur appelé cal-gke-trigger pour les journaux d'audit écrits par storage.googleapis.com et pour l'opération identifiée comme storage.buckets.update.

Événements directs

Cloud Storage

gcloud eventarc triggers create TRIGGER \
    --location=LOCATION \
    --destination-gke-cluster=DESTINATION_GKE_CLUSTER \
    --destination-gke-location=DESTINATION_GKE_LOCATION \
    --destination-gke-namespace=DESTINATION_GKE_NAMESPACE \
    --destination-gke-service=DESTINATION_GKE_SERVICE \
    --destination-gke-path=DESTINATION_GKE_PATH \
    --event-filters="type=EVENT_FILTER_TYPE" \
    --event-filters="bucket=BUCKET" \
    --service-account=TRIGGER_SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com

Remplacez les éléments suivants :

  • TRIGGER : l'ID du déclencheur ou un identifiant complet.
  • LOCATION : l'emplacement du déclencheur Eventarc. Le bucket Cloud Storage doit se trouver dans le même projet Google Cloud et dans la même région ou emplacement multirégional que le déclencheur Eventarc. Vous pouvez également définir la propriété eventarc/location (par exemple, gcloud config set eventarc/location us-central1). Pour en savoir plus, consultez la page Emplacements Eventarc.
  • DESTINATION_GKE_CLUSTER: nom du cluster GKE dans lequel le service GKE cible qui reçoit des événements est en cours d'exécution.
  • DESTINATION_GKE_LOCATION: emplacement où se trouve le service GKE de destination. Si elle n'est pas spécifiée, il est supposé que le service se trouve dans la même région que le déclencheur. Pour en savoir plus, consultez la page Emplacements Cloud Run pour Anthos sur Google Cloud.
  • DESTINATION_GKE_NAMESPACE: espace de noms dans lequel le service GKE de destination est exécuté. S'il n'est pas spécifié, l'espace de noms default est utilisé.
  • DESTINATION_GKE_SERVICE: nom du service GKE qui reçoit les événements du déclencheur. Le service peut se trouver dans l'un des emplacements compatibles avec GKE et ne doit pas nécessairement se trouver au même emplacement que le déclencheur. Cependant, le service doit se trouver dans le même projet que le déclencheur et recevoir des événements sous forme de requêtes HTTP POST envoyées à son chemin d'URL racine (/), à chaque déclenchement de l'événement.
  • (Facultatif) DESTINATION_GKE_PATH: chemin d'accès relatif que vous spécifiez sur le service GKE de destination auquel les événements du déclencheur doivent être envoyés. Exemple : /, /route, route, route/subroute.
  • EVENT_FILTER_TYPE : l'identifiant de l'événement Cloud Storage et peut être l'un des éléments suivants :
    • google.cloud.storage.object.v1.finalized : cet événement est envoyé lorsqu'un nouvel objet est créé dans le bucket (ou qu'un objet existant est remplacé et qu'une nouvelle génération de cet objet est créée).
    • google.cloud.storage.object.v1.archived : cet événement est envoyé lorsqu'une version en ligne d'un objet est archivée ou supprimée. Cet événement est uniquement envoyé pour les buckets avec gestion des versions.
    • google.cloud.storage.object.v1.deleted : cet événement est envoyé lorsqu'un objet est définitivement supprimé. En fonction du paramètre de gestion des versions d'objet des buckets, cela signifie :
      • pour les buckets avec gestion des versions, que celui-ci n'est envoyé que lorsqu'une version est définitivement supprimée (mais pas lorsqu'un objet est archivé) ;
      • pour les buckets sans gestion de versions, que celui-ci est envoyé lorsqu'un objet est supprimé ou écrasé.
    • google.cloud.storage.object.v1.metadataUpdated : cet événement est envoyé lorsque les métadonnées d'un objet existant changent.
  • BUCKET est l'identifiant unique du bucket Cloud Storage.
  • TRIGGER_SERVICE_ACCOUNT: adresse e-mail du compte de service IAM associé au déclencheur et auquel vous avez précédemment attribué des rôles spécifiques requis par Eventarc. Exemple : $TRIGGER_SA@PROJECT_ID.iam.gserviceaccount.com
  • PROJECT_ID : ID de votre projet Google Cloud

Remarques :

  • Ces options sont obligatoires :
    • --event-filters="type=EVENT_FILTER_TYPE"
    • --event-filters="bucket=BUCKET"
  • Une fois le déclencheur créé, EVENT_FILTER_TYPE ne peut plus être modifié. À la place, vous devez créer un nouveau déclencheur et supprimer l'ancien.
  • Les événements sont envoyés via des notifications Pub/Sub issues de Cloud Storage. Configurer trop de notifications enregistrées sur le même bucket peut entraîner le dépassement de la limite de notifications du bucket, comme indiqué par l'erreur Cloud Storage bucket ...: Pub/Sub notification limit reached. Le bucket peut comporter jusqu'à 10 configurations de notification déclenchant un événement spécifique. Consultez la page Quotas et limites pour Cloud Storage afin d'en savoir plus sur les quotas et les limites.
  • Chaque déclencheur peut comporter plusieurs filtres d'événement, spécifiés dans une option --event-filters=[ATTRIBUTE=VALUE,...], en les séparant par une virgule, ou vous pouvez répéter l'option pour ajouter d'autres filtres. Seuls les événements correspondant à tous les filtres sont envoyés à la destination. Les caractères génériques et les expressions régulières ne sont pas acceptés.
  • L'option --service-account permet de spécifier l'adresse e-mail du compte de service IAM (Identity and Access Management) associée au déclencheur.
  • (Facultatif) DESTINATION_GKE_PATH: chemin d'accès relatif que vous spécifiez sur le service GKE de destination auquel les événements du déclencheur doivent être envoyés. Exemple : /, /route, route, route/subroute.

Exemple :

gcloud eventarc triggers create storage-gke-trigger \
    --location=us-central1 \
    --destination-gke-cluster=gke-events-cluster \
    --destination-gke-location=us-central1-a \
    --destination-gke-namespace=default \
    --destination-gke-service=helloworld-events \
    --destination-gke-path=/ \
    --event-filters="type=google.cloud.storage.object.v1.finalized" \
    --event-filters="bucket=my-project-bucket" \
    --service-account=${TRIGGER_SA}@${PROJECT_ID}.iam.gserviceaccount.com

Cette commande crée un déclencheur appelé storage-gke-trigger pour le bucket Cloud Storage my-project-bucket et l'événement identifié en tant que google.cloud.storage.object.v1.finalized.

Firebase Alerts

gcloud eventarc triggers create TRIGGER \
    --location=global \
    --destination-gke-cluster=DESTINATION_GKE_CLUSTER \
    --destination-gke-location=DESTINATION_GKE_LOCATION \
    --destination-gke-namespace=DESTINATION_GKE_NAMESPACE \
    --destination-gke-service=DESTINATION_GKE_SERVICE \
    --destination-gke-path=DESTINATION_GKE_PATH \
    --event-filters="type=google.firebase.firebasealerts.alerts.v1.published" \
    --event-filters="alerttype=ALERT_TYPE" \
    --service-account=TRIGGER_SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com

Remplacez les éléments suivants :

  • TRIGGER : l'ID du déclencheur ou un identifiant complet.
  • DESTINATION_GKE_CLUSTER: nom du cluster GKE dans lequel le service GKE cible qui reçoit des événements est en cours d'exécution.
  • DESTINATION_GKE_LOCATION: emplacement où se trouve le service GKE de destination. Si elle n'est pas spécifiée, il est supposé que le service se trouve dans la même région que le déclencheur. Pour en savoir plus, consultez la page Emplacements Cloud Run pour Anthos sur Google Cloud.
  • DESTINATION_GKE_NAMESPACE: espace de noms dans lequel le service GKE de destination est exécuté. S'il n'est pas spécifié, l'espace de noms default est utilisé.
  • DESTINATION_GKE_SERVICE: nom du service GKE qui reçoit les événements du déclencheur. Le service peut se trouver dans l'un des emplacements compatibles avec GKE et ne doit pas nécessairement se trouver au même emplacement que le déclencheur. Cependant, le service doit se trouver dans le même projet que le déclencheur et recevoir des événements sous forme de requêtes HTTP POST envoyées à son chemin d'URL racine (/), à chaque déclenchement de l'événement.
  • (Facultatif) DESTINATION_GKE_PATH: chemin d'accès relatif que vous spécifiez sur le service GKE de destination auquel les événements du déclencheur doivent être envoyés. Exemple : /, /route, route, route/subroute.
  • ALERT_TYPE est le type d'alerte Firebase et peut être l'un des suivants :
    • appDistribution.newTesterIosDevice : l'événement est envoyé lorsqu'un nouvel appareil iOS est enregistré à partir d'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.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.
  • TRIGGER_SERVICE_ACCOUNT: adresse e-mail du compte de service IAM associé au déclencheur et auquel vous avez précédemment attribué des rôles spécifiques requis par Eventarc. Exemple : $TRIGGER_SA@PROJECT_ID.iam.gserviceaccount.com
  • PROJECT_ID : ID de votre projet Google Cloud

Remarques :

  • L'option --location doit être global. Pour en savoir plus, consultez la page Emplacements Eventarc.
  • Les options --event-filters="type=google.firebase.firebasealerts.alerts.v1.published" et --event-filters="alerttype=ALERT_TYPE" sont obligatoires.
  • 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.
  • Une fois le déclencheur créé, le type de filtre d'événements ne peut plus être modifié. À la place, vous devez créer un nouveau déclencheur et supprimer l'ancien.
  • L'option --service-account permet de spécifier l'adresse e-mail du compte de service IAM (Identity and Access Management) associée au déclencheur.

Exemple :

gcloud eventarc triggers create firealert-gke-trigger \
    --location=us-central1 \
    --destination-gke-cluster=gke-events-cluster \
    --destination-gke-location=us-central1-a \
    --destination-gke-namespace=default \
    --destination-gke-service=helloworld-events \
    --destination-gke-path=/ \
    --event-filters="type=google.firebase.firebasealerts.alerts.v1.published" \
    --event-filters="alerttype=crashlytics.velocity" \
    --service-account="${TRIGGER_SA}@${PROJECT_ID}.iam.gserviceaccount.com"

Cette commande crée un déclencheur appelé firealert-gke-trigger pour l'événement identifié comme google.firebase.firebasealerts.alerts.v1.published et pour un type d'alerte crashlytics.velocity.

Firebase Realtime Database

gcloud eventarc triggers create TRIGGER \
    --location=LOCATION \
    --destination-gke-cluster=DESTINATION_GKE_CLUSTER \
    --destination-gke-location=DESTINATION_GKE_LOCATION \
    --destination-gke-namespace=DESTINATION_GKE_NAMESPACE \
    --destination-gke-service=DESTINATION_GKE_SERVICE \
    --destination-gke-path=DESTINATION_GKE_PATH \
    --event-filters="type=EVENT_FILTER_TYPE" \
    --event-filters="instance=INSTANCE" \
    --event-filters-path-pattern="ref=REF" \
    --service-account=TRIGGER_SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com

Remplacez les éléments suivants :

  • TRIGGER : l'ID du déclencheur ou un identifiant complet.
  • LOCATION : l'emplacement du déclencheur Eventarc. Vous pouvez également définir la propriété eventarc/location (par exemple, gcloud config set eventarc/location us-central1). Les déclencheurs Firebase Realtime Database pour Eventarc ne sont disponibles que dans les emplacements suivants :

    • us-central1
    • europe-west1
    • asia-southeast1

    Notez que le déclencheur doit se trouver au même emplacement que l'instance Firebase Realtime Database. Pour en savoir plus, consultez la section Emplacements Realtime Database.

  • DESTINATION_GKE_CLUSTER: nom du cluster GKE dans lequel le service GKE cible qui reçoit des événements est en cours d'exécution.
  • DESTINATION_GKE_LOCATION: emplacement où se trouve le service GKE de destination. Si elle n'est pas spécifiée, il est supposé que le service se trouve dans la même région que le déclencheur. Pour en savoir plus, consultez la page Emplacements Cloud Run pour Anthos sur Google Cloud.
  • DESTINATION_GKE_NAMESPACE: espace de noms dans lequel le service GKE de destination est exécuté. S'il n'est pas spécifié, l'espace de noms default est utilisé.
  • DESTINATION_GKE_SERVICE: nom du service GKE qui reçoit les événements du déclencheur. Le service peut se trouver dans l'un des emplacements compatibles avec GKE et ne doit pas nécessairement se trouver au même emplacement que le déclencheur. Cependant, le service doit se trouver dans le même projet que le déclencheur et recevoir des événements sous forme de requêtes HTTP POST envoyées à son chemin d'URL racine (/), à chaque déclenchement de l'événement.
  • (Facultatif) DESTINATION_GKE_PATH: chemin d'accès relatif que vous spécifiez sur le service GKE de destination auquel les événements du déclencheur doivent être envoyés. Exemple : /, /route, route, route/subroute.
  • EVENT_FILTER_TYPE : identifiant de l'événement Firebase Realtime Database. Il peut s'agir de l'un des éléments suivants :

    • google.firebase.database.ref.v1.created : l'événement est envoyé lorsque des données sont créées dans la base de données.
    • google.firebase.database.ref.v1.updated : l'événement est envoyé lorsque les données sont mises à jour dans la base de données.
    • google.firebase.database.ref.v1.deleted : l'événement est envoyé lorsque les données sont supprimées de la base de données.
    • google.firebase.database.ref.v1.written : l'événement est envoyé lorsque des données sont créées, mises à jour ou supprimées dans la base de données.
  • INSTANCE : une seule instance de base de données et l'opérateur peuvent être les suivants :

    • Égal à. Par exemple : --event-filters="instance=INSTANCE"
    • Format de chemin d'accès. Exemple : --event-filters-path-pattern="instance=INSTANCE" Pour en savoir plus, consultez la page Comprendre les formats de chemin d'accès.
  • REF : chemin d'accès de l'instance de base de données pour lequel vous souhaitez recevoir des événements à partir du moment où les données sont créées, mises à jour ou supprimées dans ce chemin d'accès ou à partir de l'un de ses enfants.

  • TRIGGER_SERVICE_ACCOUNT: adresse e-mail du compte de service IAM associé au déclencheur et auquel vous avez précédemment attribué des rôles spécifiques requis par Eventarc. Exemple : $TRIGGER_SA@PROJECT_ID.iam.gserviceaccount.com
  • PROJECT_ID : ID de votre projet Google Cloud.

Remarques :

  • Ces options sont obligatoires :
    • --event-filters="type=EVENT_FILTER_TYPE"
    • --event-filters="instance=INSTANCE" ou --event-filters-path-pattern="instance=INSTANCE"
    • --event-filters-path-pattern="ref=REF"
  • Une fois le déclencheur créé, le type de filtre d'événements ne peut plus être modifié. À la place, vous devez créer un nouveau déclencheur et supprimer l'ancien.
  • L'option --service-account permet de spécifier l'adresse e-mail du compte de service IAM (Identity and Access Management) associée au déclencheur.

Exemple :

gcloud eventarc triggers create rd-gke-trigger \
    --location=us-central1 \
    --destination-gke-cluster=gke-events-cluster \
    --destination-gke-location=us-central1-a \
    --destination-gke-namespace=default \
    --destination-gke-service=helloworld-events \
    --destination-gke-path=/ \
    --event-filters="type=google.firebase.database.ref.v1.created" \
    --event-filters="instance=test-instance" \
    --event-filters-path-pattern="ref=users/*" \
    --service-account=${PROJECT_NUMBER}-compute@developer.gserviceaccount.com

Cette commande crée un déclencheur appelé rd-gke-trigger pour l'événement identifié comme google.firebase.database.ref.v1.created.

Firebase Remote Config

gcloud eventarc triggers create TRIGGER \
    --location=global \
    --destination-gke-cluster=DESTINATION_GKE_CLUSTER \
    --destination-gke-location=DESTINATION_GKE_LOCATION \
    --destination-gke-namespace=DESTINATION_GKE_NAMESPACE \
    --destination-gke-service=DESTINATION_GKE_SERVICE \
    --destination-gke-path=DESTINATION_GKE_PATH \
    --event-filters="type=google.firebase.remoteconfig.remoteConfig.v1.updated" \
    --service-account=TRIGGER_SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com

Remplacez les éléments suivants :

  • TRIGGER : l'ID du déclencheur ou un identifiant complet.
  • DESTINATION_GKE_CLUSTER: nom du cluster GKE dans lequel le service GKE cible qui reçoit des événements est en cours d'exécution.
  • DESTINATION_GKE_LOCATION: emplacement où se trouve le service GKE de destination. Si elle n'est pas spécifiée, il est supposé que le service se trouve dans la même région que le déclencheur. Pour en savoir plus, consultez la page Emplacements Cloud Run pour Anthos sur Google Cloud.
  • DESTINATION_GKE_NAMESPACE: espace de noms dans lequel le service GKE de destination est exécuté. S'il n'est pas spécifié, l'espace de noms default est utilisé.
  • DESTINATION_GKE_SERVICE: nom du service GKE qui reçoit les événements du déclencheur. Le service peut se trouver dans l'un des emplacements compatibles avec GKE et ne doit pas nécessairement se trouver au même emplacement que le déclencheur. Cependant, le service doit se trouver dans le même projet que le déclencheur et recevoir des événements sous forme de requêtes HTTP POST envoyées à son chemin d'URL racine (/), à chaque déclenchement de l'événement.
  • (Facultatif) DESTINATION_GKE_PATH: chemin d'accès relatif que vous spécifiez sur le service GKE de destination auquel les événements du déclencheur doivent être envoyés. Exemple : /, /route, route, route/subroute.
  • TRIGGER_SERVICE_ACCOUNT: adresse e-mail du compte de service IAM associé au déclencheur et auquel vous avez précédemment attribué des rôles spécifiques requis par Eventarc. Exemple : $TRIGGER_SA@PROJECT_ID.iam.gserviceaccount.com
  • PROJECT_ID : ID de votre projet Google Cloud

Remarques :

  • L'option --location doit être global. Pour en savoir plus, consultez la page Emplacements Eventarc.
  • L'option --event-filters est obligatoire et le type doit être google.firebase.remoteconfig.remoteConfig.v1.updated. Un événement est envoyé lorsqu'un modèle Remote Config est mis à jour.
  • Une fois le déclencheur créé, le type de filtre d'événements ne peut plus être modifié. À la place, vous devez créer un nouveau déclencheur et supprimer l'ancien.
  • L'option --service-account permet de spécifier l'adresse e-mail du compte de service IAM (Identity and Access Management) associée au déclencheur.

Exemple :

gcloud eventarc triggers create rc-gke-trigger \
    --location=global \
    --destination-gke-cluster=gke-events-cluster \
    --destination-gke-location=us-central1-a \
    --destination-gke-namespace=default \
    --destination-gke-service=helloworld-events \
    --destination-gke-path=/ \
    --event-filters="type=google.firebase.remoteconfig.remoteConfig.v1.updated" \
    --service-account=${TRIGGER_SA}@${PROJECT_ID}.iam.gserviceaccount.com

Cette commande crée un déclencheur appelé rc-gke-trigger pour l'événement identifié comme google.firebase.remoteconfig.remoteConfig.v1.updated.

Firebase Test Lab

gcloud eventarc triggers create TRIGGER \
    --location=global \
    --destination-gke-cluster=DESTINATION_GKE_CLUSTER \
    --destination-gke-location=DESTINATION_GKE_LOCATION \
    --destination-gke-namespace=DESTINATION_GKE_NAMESPACE \
    --destination-gke-service=DESTINATION_GKE_SERVICE \
    --destination-gke-path=DESTINATION_GKE_PATH \
    --event-filters="type=google.firebase.testlab.testMatrix.v1.completed" \
    --service-account=TRIGGER_SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com

Remplacez les éléments suivants :

  • TRIGGER : l'ID du déclencheur ou un identifiant complet.
  • DESTINATION_GKE_CLUSTER: nom du cluster GKE dans lequel le service GKE cible qui reçoit des événements est en cours d'exécution.
  • DESTINATION_GKE_LOCATION: emplacement où se trouve le service GKE de destination. Si elle n'est pas spécifiée, il est supposé que le service se trouve dans la même région que le déclencheur. Pour en savoir plus, consultez la page Emplacements Cloud Run pour Anthos sur Google Cloud.
  • DESTINATION_GKE_NAMESPACE: espace de noms dans lequel le service GKE de destination est exécuté. S'il n'est pas spécifié, l'espace de noms default est utilisé.
  • DESTINATION_GKE_SERVICE: nom du service GKE qui reçoit les événements du déclencheur. Le service peut se trouver dans l'un des emplacements compatibles avec GKE et ne doit pas nécessairement se trouver au même emplacement que le déclencheur. Cependant, le service doit se trouver dans le même projet que le déclencheur et recevoir des événements sous forme de requêtes HTTP POST envoyées à son chemin d'URL racine (/), à chaque déclenchement de l'événement.
  • (Facultatif) DESTINATION_GKE_PATH: chemin d'accès relatif que vous spécifiez sur le service GKE de destination auquel les événements du déclencheur doivent être envoyés. Exemple : /, /route, route, route/subroute.
  • TRIGGER_SERVICE_ACCOUNT: adresse e-mail du compte de service IAM associé au déclencheur et auquel vous avez précédemment attribué des rôles spécifiques requis par Eventarc. Exemple : $TRIGGER_SA@PROJECT_ID.iam.gserviceaccount.com
  • PROJECT_ID : ID de votre projet Google Cloud

Remarques :

  • L'option --location doit être global. Pour en savoir plus, consultez la page Emplacements Eventarc.
  • L'option --event-filters est obligatoire et le type doit être google.firebase.testlab.testMatrix.v1.completed. Un événement est envoyé à la fin d'une évaluation TestMatrix.
  • Une fois le déclencheur créé, le type de filtre d'événements ne peut plus être modifié. À la place, vous devez créer un nouveau déclencheur et supprimer l'ancien.
  • L'option --service-account permet de spécifier l'adresse e-mail du compte de service IAM (Identity and Access Management) associée au déclencheur.

Exemple :

gcloud eventarc triggers create tl-gke-trigger \
    --location=global \
    --destination-gke-cluster=gke-events-cluster \
    --destination-gke-location=us-central1-a \
    --destination-gke-namespace=default \
    --destination-gke-service=helloworld-events \
    --destination-gke-path=/ \
    --event-filters="type=google.firebase.testlab.testMatrix.v1.completed" \
    --service-account=${TRIGGER_SA}@${PROJECT_ID}.iam.gserviceaccount.com

Cette commande crée un déclencheur appelé tl-gke-trigger pour l'événement identifié comme google.firebase.testlab.testMatrix.v1.completed.

Messages Pub/Sub (sujet existant)

gcloud eventarc triggers create TRIGGER \
    --location=LOCATION \
    --destination-gke-cluster=DESTINATION_GKE_CLUSTER \
    --destination-gke-location=DESTINATION_GKE_LOCATION \
    --destination-gke-namespace=DESTINATION_GKE_NAMESPACE \
    --destination-gke-service=DESTINATION_GKE_SERVICE \
    --destination-gke-path=DESTINATION_GKE_PATH \
    --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \
    --transport-topic=projects/PROJECT_ID/topics/TOPIC_ID \
    --service-account=TRIGGER_SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com

Remplacez les éléments suivants :

  • TRIGGER : l'ID du déclencheur ou un identifiant complet.
  • LOCATION : l'emplacement du déclencheur Eventarc. Pour éviter les problèmes de performances et de résidence des données occasionnés par un déclencheur global, il doit correspondre à l'emplacement du service Google Cloud qui génère les événements. Vous pouvez également définir la propriété eventarc/location (par exemple, gcloud config set eventarc/location us-central1). Pour en savoir plus, consultez la page Emplacements Eventarc.
  • DESTINATION_GKE_CLUSTER: nom du cluster GKE dans lequel le service GKE cible qui reçoit des événements est en cours d'exécution.
  • DESTINATION_GKE_LOCATION: emplacement où se trouve le service GKE de destination. Si elle n'est pas spécifiée, il est supposé que le service se trouve dans la même région que le déclencheur. Pour en savoir plus, consultez la page Emplacements Cloud Run pour Anthos sur Google Cloud.
  • DESTINATION_GKE_NAMESPACE: espace de noms dans lequel le service GKE de destination est exécuté. S'il n'est pas spécifié, l'espace de noms default est utilisé.
  • DESTINATION_GKE_SERVICE: nom du service GKE qui reçoit les événements du déclencheur. Le service peut se trouver dans l'un des emplacements compatibles avec GKE et ne doit pas nécessairement se trouver au même emplacement que le déclencheur. Cependant, le service doit se trouver dans le même projet que le déclencheur et recevoir des événements sous forme de requêtes HTTP POST envoyées à son chemin d'URL racine (/), à chaque déclenchement de l'événement.
  • (Facultatif) DESTINATION_GKE_PATH: chemin d'accès relatif que vous spécifiez sur le service GKE de destination auquel les événements du déclencheur doivent être envoyés. Exemple : /, /route, route, route/subroute.
  • PROJECT_ID : ID de votre projet Google Cloud.
  • TOPIC_ID correspond à l'ID du sujet Pub/Sub existant. Le sujet doit se trouver dans le même projet que le déclencheur.
  • TRIGGER_SERVICE_ACCOUNT: adresse e-mail du compte de service IAM associé au déclencheur et auquel vous avez précédemment attribué des rôles spécifiques requis par Eventarc. Exemple : $TRIGGER_SA@PROJECT_ID.iam.gserviceaccount.com

Notes :

  • L'option --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" est obligatoire.
  • Chaque déclencheur peut comporter plusieurs filtres d'événement, spécifiés dans une option --event-filters=[ATTRIBUTE=VALUE,...], en les séparant par une virgule, ou vous pouvez répéter l'option pour ajouter d'autres filtres. Seuls les événements correspondant à tous les filtres sont envoyés à la destination. Les caractères génériques et les expressions régulières ne sont pas acceptés.
  • L'option --transport-topic permet de spécifier l'ID du sujet Pub/Sub existant ou son identifiant complet.
  • 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 Gérer les abonnements.

Exemple :

  gcloud eventarc triggers create pubsub-gke-trigger-existing \
      --destination-gke-cluster=gke-events-cluster \
      --destination-gke-location=us-central1-a \
      --destination-gke-namespace=default \
      --destination-gke-service=helloworld \
      --destination-gke-path=/ \
      --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \
      --transport-topic=projects/${PROJECT_ID}/topics/${TOPIC_ID} \
      --service-account=${TRIGGER_SA}@${PROJECT_ID}.iam.gserviceaccount.com

Cela crée un déclencheur nommé pubsub-gke-trigger-existing pour le sujet Pub/Sub identifié par projects/${PROJECT_ID}/topics/${TOPIC_ID}.

Messages Pub/Sub (nouveau sujet)

gcloud eventarc triggers create TRIGGER \
    --location=LOCATION \
    --destination-gke-cluster=DESTINATION_GKE_CLUSTER \
    --destination-gke-location=DESTINATION_GKE_LOCATION \
    --destination-gke-namespace=DESTINATION_GKE_NAMESPACE \
    --destination-gke-service=DESTINATION_GKE_SERVICE \
    --destination-gke-path=DESTINATION_GKE_PATH \
    --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \
    --service-account=TRIGGER_SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com

Remplacez les éléments suivants :

  • TRIGGER : l'ID du déclencheur ou un identifiant complet.
  • LOCATION : l'emplacement du déclencheur Eventarc. Pour éviter les problèmes de performances et de résidence des données occasionnés par un déclencheur global, il doit correspondre à l'emplacement du service Google Cloud qui génère les événements. Vous pouvez également définir la propriété eventarc/location (par exemple, gcloud config set eventarc/location us-central1). Pour en savoir plus, consultez la page Emplacements Eventarc.
  • DESTINATION_GKE_CLUSTER: nom du cluster GKE dans lequel le service GKE cible qui reçoit des événements est en cours d'exécution.
  • DESTINATION_GKE_LOCATION: emplacement où se trouve le service GKE de destination. Si elle n'est pas spécifiée, il est supposé que le service se trouve dans la même région que le déclencheur. Pour en savoir plus, consultez la page Emplacements Cloud Run pour Anthos sur Google Cloud.
  • DESTINATION_GKE_NAMESPACE: espace de noms dans lequel le service GKE de destination est exécuté. S'il n'est pas spécifié, l'espace de noms default est utilisé.
  • DESTINATION_GKE_SERVICE: nom du service GKE qui reçoit les événements du déclencheur. Le service peut se trouver dans l'un des emplacements compatibles avec GKE et ne doit pas nécessairement se trouver au même emplacement que le déclencheur. Cependant, le service doit se trouver dans le même projet que le déclencheur et recevoir des événements sous forme de requêtes HTTP POST envoyées à son chemin d'URL racine (/), à chaque déclenchement de l'événement.
  • (Facultatif) DESTINATION_GKE_PATH: chemin d'accès relatif que vous spécifiez sur le service GKE de destination auquel les événements du déclencheur doivent être envoyés. Exemple : /, /route, route, route/subroute.
  • TRIGGER_SERVICE_ACCOUNT: adresse e-mail du compte de service IAM associé au déclencheur et auquel vous avez précédemment attribué des rôles spécifiques requis par Eventarc. Exemple : $TRIGGER_SA@PROJECT_ID.iam.gserviceaccount.com
  • PROJECT_ID : ID de votre projet Google Cloud.

Remarques :

  • L'option --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" est obligatoire.
  • Chaque déclencheur peut comporter plusieurs filtres d'événement, spécifiés dans une option --event-filters=[ATTRIBUTE=VALUE,...], en les séparant par une virgule, ou vous pouvez répéter l'option pour ajouter d'autres filtres. Seuls les événements correspondant à tous les filtres sont envoyés à la destination. Les caractères génériques et les expressions régulières ne sont pas acceptés.
  • 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 Gérer les abonnements.

Exemple :

  gcloud eventarc triggers create pubsub-gke-trigger-new \
      --location=us-central1 \
      --destination-gke-cluster=gke-events-cluster \
      --destination-gke-location=us-central1-a \
      --destination-gke-namespace=default \
      --destination-gke-service=helloworld \
      --destination-gke-path=/ \
      --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \
      --service-account=${TRIGGER_SA}@${PROJECT_ID}.iam.gserviceaccount.com

Cela crée un sujet Pub/Sub et un déclencheur associé nommé pubsub-gke-trigger-new.

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

Vous pouvez créer un déclencheur via la console. Pour en savoir plus, consultez la page Créer un déclencheur à l'aide de la console.

Répertorier un déclencheur à l'aide de Google Cloud CLI

Vous pouvez confirmer la création d'un déclencheur en répertoriant les déclencheurs Eventarc :

gcloud eventarc triggers list --location=LOCATION

Remplacez LOCATION par l'ID ou l'identifiant complet de l'emplacement du déclencheur Eventarc. Par exemple, us-central1.

Pour plus d'informations sur la gestion des déclencheurs Eventarc, consultez la page Gérer les déclencheurs.

Étape suivante

Pour commencer à utiliser Eventarc pour GKE, consultez les guides de démarrage rapide.