Gérer les déclencheurs

Vous pouvez gérer les déclencheurs à l'aide de la console Google Cloud ou de Google Cloud CLI dans votre terminal ou Cloud Shell. Vous pouvez également gérer les déclencheurs via l'API Eventarc.

Répertorier les déclencheurs

Vous pouvez répertorier, filtrer et trier les déclencheurs dans tous les emplacements.

Console

  1. Dans la console Google Cloud, accédez à la page Déclencheurs d'Eventarc.

    Accéder à la page "Déclencheurs"

    Vous y trouverez la liste de tous les déclencheurs de votre projet pour tous les emplacements et inclut des informations telles que le nom du déclencheur, la région, le fournisseur d'événements, la destination et le type d'événement.

  2. Pour filtrer vos déclencheurs selon une propriété spécifique, procédez comme suit :

    1. Cliquez sur la case Filtre .
    2. Dans la liste des Propriétés, sélectionnez une option pour filtrer les déclencheurs par exemple, Nom ou Canal d'événement.

    Vous pouvez sélectionner une seule propriété ou utiliser l'opérateur logique OR pour ajouter d'autres propriétés à filtrer.

  3. Pour trier vos déclencheurs, cliquez sur Trier à côté de l'en-tête de colonne approprié.

    Seules certaines colonnes peuvent être triées, par exemple Nom, Région ou Canal d'événement.

gcloud

gcloud eventarc triggers list --location=-

Cette commande répertorie le nom, le type, la destination et l'état du déclencheur dans tous les emplacements.

REST

Pour répertorier les déclencheurs dans un projet et un emplacement donnés, utilisez la méthode projects.locations.triggers.list.

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • PROJECT_ID : ID de votre projet Google Cloud.
  • LOCATION : région dans laquelle les déclencheurs sont créés (par exemple, us-central1).

Pour envoyer votre requête, développez l'une des options suivantes :

Si la requête aboutit, le corps de la réponse contient des instances de Trigger et la réponse doit ressembler à ce qui suit :

{
  "triggers": [
    {
      "name": "projects/PROJECT_ID/locations/LOCATION/triggers/TRIGGER_NAME",
      "uid": "d700773a-698b-47b2-a712-2ee10b690062",
      "createTime": "2022-12-06T22:44:04.744001514Z",
      "updateTime": "2022-12-06T22:44:09.116459550Z",
      "eventFilters": [
        {
          "attribute": "type",
          "value": "google.cloud.pubsub.topic.v1.messagePublished"
        }
      ],
      "serviceAccount": "SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com",
      "destination": {
        "workflow": "projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_NAME"
      },
      "transport": {
        "pubsub": {
          "topic": "projects/PROJECT_ID/topics/TOPIC_ID",
          "subscription": "projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID"
        }
      }
    },
    {
      object (Trigger)
    }
  ],
  "nextPageToken": string,
  "unreachable": [
    string
  ]
}

Décrire un déclencheur

Vous pouvez décrire un déclencheur dans un emplacement spécifique.

Console

  1. Dans la console Google Cloud, accédez à la page Déclencheurs d'Eventarc.

    Accéder à la page "Déclencheurs"

  2. Dans la liste des déclencheurs, cliquez sur le déclencheur dont vous souhaitez connaître les détails.

La page Détails du déclencheur affiche les détails du déclencheur, tels que le nom, la région, le fournisseur, le type et le type de contenu de données de l'événement, et la destination.

gcloud

gcloud eventarc triggers describe TRIGGER \
    --location=LOCATION

Remplacez les éléments suivants :

  • TRIGGER : l'ID du déclencheur ou un identifiant complet.
  • LOCATION : l'emplacement du déclencheur Eventarc.

Cette commande renvoie des informations sur le déclencheur, semblables à ce qui suit :

  createTime: '2023-03-16T13:40:44.889670204Z'
  destination:
    cloudRun:
      path: /
      region: us-central1
      service: hello
  eventDataContentType: application/protobuf
  eventFilters:
  - attribute: serviceName
    value: cloudscheduler.googleapis.com
  - attribute: methodName
    value: google.cloud.scheduler.v1.CloudScheduler.DeleteJob
  - attribute: type
    value: google.cloud.audit.log.v1.written
  name: projects/project-name/locations/us-central1/triggers/name-of-trigger
  serviceAccount: project-number-compute@developer.gserviceaccount.com
  transport:
    pubsub:
      subscription: projects/project-name/subscriptions/eventarc-us-central1-name-of-trigger-sub-034
      topic: projects/project-name/topics/eventarc-us-central1-name-of-trigger-931

REST

Pour décrire un déclencheur dans un projet et un emplacement donnés, utilisez la méthode projects.locations.triggers.get.

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • TRIGGER_NAME : nom du déclencheur que vous souhaitez décrire.
  • PROJECT_ID : ID de votre projet Google Cloud.
  • LOCATION : région dans laquelle le déclencheur est créé, par exemple us-central1.

Pour envoyer votre requête, développez l'une des options suivantes :

Si la requête aboutit, le corps de la réponse contient une instance de Trigger semblable à celle-ci :

{
  "name": "projects/PROJECT_ID/locations/LOCATION/triggers/TRIGGER_NAME",
  "uid": "d700773a-698b-47b2-a712-2ee10b690062",
  "createTime": "2022-12-06T22:44:04.744001514Z",
  "updateTime": "2022-12-06T22:44:09.116459550Z",
  "eventFilters": [
    {
      "attribute": "type",
      "value": "google.cloud.pubsub.topic.v1.messagePublished"
    }
  ],
  "serviceAccount": "SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com",
  "destination": {
    "workflow": "projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_NAME"
  },
  "transport": {
    "pubsub": {
      "topic": "projects/PROJECT_ID/topics/TOPIC_ID",
      "subscription": "projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID"
    }
  }
}

Si la condition du déclencheur indique un problème avec le sujet Pub/Sub, consultez la section Le déclencheur ne diffuse pas d'événements.

Mettre à jour un déclencheur

Vous pouvez mettre à jour un déclencheur pour Cloud Run, Google Kubernetes Engine (GKE) et les destinations de workflows. Selon la destination, des champs spécifiques peuvent être mis à jour.

Console

  1. Dans la console Google Cloud, accédez à la page Déclencheurs d'Eventarc.

    Accéder à la page "Déclencheurs"

  2. Dans la liste des déclencheurs, cliquez sur le déclencheur dont vous souhaitez connaître les détails.

  3. Sur la page Détails du déclencheur, cliquez sur Modifier.

  4. Modifiez les champs selon vos besoins, puis cliquez sur Enregistrer.

    Notez que vous ne pouvez pas mettre à jour les champs indisponibles, tels que le fournisseur d'événements et la destination de l'événement. Pour en savoir plus sur les champs, consultez les instructions de la console pour un fournisseur, un type d'événement et une destination spécifiques.

gcloud

Cloud Run

gcloud eventarc triggers update TRIGGER \
    --location=LOCATION \
    --event-filters=NEW_EVENT_FILTERS \
    --service-account=NEW_SERVICE_ACCOUNT \
    --destination-run-region=NEW_REGION \
    --destination-run-service=NEW_SERVICE \
    --destination-run-path=NEW_PATH \
    --event-data-content-type="NEW_EVENT_DATA_TYPE"

Remplacez les éléments suivants :

  • TRIGGER : l'ID du déclencheur ou un identifiant complet.
  • LOCATION : l'emplacement du déclencheur Eventarc.

Vous pouvez mettre à jour les informations suivantes :

  • NEW_EVENT_FILTERS : filtre utilisé pour configurer le routage d'événements du déclencheur. Par exemple, methodName=storage.objects.create peut être remplacé par methodName=storage.objects.delete. Notez qu'une fois le déclencheur créé, le filtre d'événement type ne peut plus être modifié. Pour un type d'événement différent, vous devez créer un déclencheur.
  • NEW_SERVICE_ACCOUNT : adresse e-mail du compte de service IAM (Identity and Access Management) associé au déclencheur.
  • NEW_REGION : région dans laquelle se trouve le service Cloud Run de destination.
  • NEW_SERVICE : nom du service Cloud Run qui reçoit les événements pour le déclencheur.
  • NEW_PATH : chemin d'accès relatif du service Cloud Run de destination auquel les événements du déclencheur doivent être envoyés.
  • NEW_EVENT_DATA_TYPE : encodage de la charge utile de l'événement. Selon le fournisseur de l'événement, il peut s'agir de application/json ou de application/protobuf.

Par exemple, pour mettre à jour le compte de service d'un déclencheur, procédez comme suit :

gcloud eventarc triggers update my-cloud-run-trigger \
    --service-account=new-serviceaccount@${PROJECT_ID}.iam.gserviceaccount.com

Cette commande met à jour le compte de service d'un déclencheur nommé my-cloud-run-trigger vers new-serviceaccount@PROJECT_ID.iam.gserviceaccount.com.

GKE

Notez que cette section s'applique également aux points de terminaison publics des services privés et publics s'exécutant dans un cluster GKE.

gcloud eventarc triggers update TRIGGER \
    --location=LOCATION \
    --destination-gke-namespace=NEW_NAMESPACE \
    --destination-gke-service=NEW_SERVICE \
    --destination-gke-path=NEW_PATH \
    --event-data-content-type="NEW_EVENT_DATA_TYPE"

Remplacez les éléments suivants :

  • TRIGGER : l'ID du déclencheur ou un identifiant complet.
  • LOCATION : l'emplacement du déclencheur Eventarc.

Vous pouvez mettre à jour les informations suivantes :

  • NEW_NAMESPACE : espace de noms dans lequel le service GKE de destination est exécuté.
  • NEW_SERVICE : nom du service GKE qui reçoit les événements du déclencheur.
  • NEW_PATH : chemin d'accès relatif du service GKE de destination auquel les événements du déclencheur doivent être envoyés.
  • NEW_EVENT_DATA_TYPE : encodage de la charge utile de l'événement. Selon le fournisseur de l'événement, il peut s'agir de application/json ou de application/protobuf.

Par exemple, pour mettre à jour le service récepteur d'événements pour un déclencheur :

gcloud eventarc triggers update my-gke-trigger \
    --destination-gke-service=helloworld-events

Cette commande met à jour le service récepteur d'événements pour un déclencheur nommé my-gke-trigger vers un service GKE nommé helloworld-events.

Workflows

gcloud eventarc triggers update TRIGGER \
    --location=LOCATION \
    --event-filters=NEW_EVENT_FILTERS \
    --service-account=NEW_SERVICE_ACCOUNT \
    --destination-workflow=NEW_DESTINATION_WORKFLOW \
    --destination-workflow-location=NEW_DESTINATION_WORKFLOW_LOCATION \
    --event-data-content-type="NEW_EVENT_DATA_TYPE"

Remplacez les éléments suivants :

  • TRIGGER : l'ID du déclencheur ou un identifiant complet.
  • LOCATION : l'emplacement du déclencheur Eventarc.

Vous pouvez mettre à jour les informations suivantes :

  • NEW_EVENT_FILTERS : filtre utilisé pour configurer le routage d'événements du déclencheur. Par exemple, methodName=storage.objects.create peut être remplacé par methodName=storage.objects.delete. Notez qu'une fois le déclencheur créé, le filtre d'événement type ne peut plus être modifié. Pour un type d'événement différent, vous devez créer un déclencheur.
  • NEW_SERVICE_ACCOUNT : adresse e-mail du compte de service IAM (Identity and Access Management) associé au déclencheur.
  • NEW_DESTINATION_WORKFLOW : ID du workflow déployé qui reçoit les événements du déclencheur.
  • NEW_DESTINATION_WORKFLOW_LOCATION : emplacement dans lequel le workflow de destination est déployé.
  • NEW_EVENT_DATA_TYPE : encodage de la charge utile de l'événement. Selon le fournisseur de l'événement, il peut s'agir de application/json ou de application/protobuf.

Par exemple, pour mettre à jour le compte de service d'un déclencheur, procédez comme suit :

gcloud eventarc triggers update my-workflows-trigger \
    --service-account=new-serviceaccount@${PROJECT_ID}.iam.gserviceaccount.com

Cette commande met à jour le compte de service d'un déclencheur nommé my-workflows-trigger vers new-serviceaccount@PROJECT_ID.iam.gserviceaccount.com.

REST

Pour mettre à jour un déclencheur existant, utilisez la méthode projects.locations.triggers.patch et utilisez éventuellement le paramètre de requête updateMask pour spécifier une liste de champs à mises à jour.

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • TRIGGER_NAME : nom du déclencheur que vous souhaitez mettre à jour.
  • PROJECT_ID : ID de votre projet Google Cloud.
  • LOCATION : région dans laquelle le déclencheur est créé, par exemple us-central1.
  • SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com : Facultatif. Adresse e-mail du compte de service IAM (Identity and Access Management) associé au déclencheur.
  • DESTINATION : Facultatif. Spécifie la cible à laquelle l'événement doit être envoyé et contient une instance de Destination. Exemple :

    {"destination": {"workflow": "projects/my-project/locations/us-central1/workflows/my-first-workflow"}}

    ou

    {"destination": {"cloudRun": {"service": "hello-world", "region": "us-central1"}}}

  • EVENT_FILTER : Facultatif. Attributs d'événement à filtrer. Seule la mise à jour du type de méthode des déclencheurs Cloud Audit Logs est acceptée. Exemple :

    {"eventFilters": [{"attribute": "methodName", "value": "storage.buckets.create"}, {"attribute": "type", "value": "google.cloud.audit.log.v1.written"}, {"attribute": "serviceName", "value": "storage.googleapis.com"}]}

    Notez que vous ne pouvez pas mettre à jour les types de méthodes pour les destinations GKE.

  • CONTENT_TYPE : Facultatif. Encodage de la charge utile de l'événement. Selon le fournisseur de l'événement, il peut s'agir de application/json ou de application/protobuf.
  • UPDATE_FIELDS : Facultatif. Liste de champs à mettre à jour, séparés par une virgule. Si cette valeur n'est pas spécifiée, tous les champs fournis dans la requête sont mis à jour. Par exemple : serviceAccount,destination

Corps JSON de la requête :

{
  "serviceAccount": "SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com",
  "destination": DESTINATION,
  "eventFilters" EVENT_FILTER,
  "eventDataContentType": "CONTENT_TYPE"
}

Pour envoyer votre requête, développez l'une des options suivantes :

Si la requête aboutit, le corps de la réponse contient une nouvelle instance de Operation :

{
  "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.eventarc.v1.OperationMetadata",
    "createTime": "2024-01-25T17:17:45.782370139Z",
    "target": "projects/PROJECT_ID/locations/LOCATION/triggers/TRIGGER_NAME",
    "verb": "update",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

Si la valeur de "done" est définie sur false, l'opération est toujours en cours.

Supprimer un déclencheur

Vous pouvez supprimer un déclencheur.

Console

  1. Dans la console Google Cloud, accédez à la page Déclencheurs d'Eventarc.

    Accéder à la page "Déclencheurs"

  2. Sélectionnez le déclencheur et cliquez sur Supprimer.

gcloud

gcloud eventarc triggers delete TRIGGER

Remplacez TRIGGER par l'ID du déclencheur ou un identifiant complet.

REST

Pour supprimer un déclencheur portant un nom spécifique, utilisez la méthode projects.locations.triggers.delete.

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • PROJECT_ID : ID de votre projet Google Cloud.
  • LOCATION : région dans laquelle le déclencheur est créé, par exemple us-central1.
  • TRIGGER_NAME : nom du déclencheur que vous souhaitez supprimer.

Pour envoyer votre requête, développez l'une des options suivantes :

Si la requête aboutit, le corps de la réponse contient une instance de Operation :

{
  "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.eventarc.v1.OperationMetadata",
    "createTime": "2024-01-24T17:53:52.834876290Z",
    "target": "projects/PROJECT_ID/locations/LOCATION/triggers/TRIGGER_NAME",
    "verb": "delete",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

Si la valeur de "done" est définie sur false, l'opération est toujours en cours.

Étapes suivantes