Créer une inscription pour recevoir des événements

Un enregistrement identifie un abonnement à un bus spécifique. L'enregistrement définit les critères de correspondance qui déterminent les messages à acheminer vers une destination. Il spécifie également le pipeline par lequel les messages correspondants doivent être acheminés. Un pipeline vous permet de configurer une destination cible et vous offre également la possibilité de transformer les événements correspondants avant de les distribuer à la destination.

Veuillez noter les points suivants :

  • Un pipeline et un enregistrement doivent se trouver dans le même projet Google Cloud . (Le bus auquel l'abonnement est souscrit peut se trouver dans le même projet ou dans un autre.)
  • Un même pipeline peut être utilisé pour plusieurs inscriptions.
  • Une seule destination peut être la cible des messages acheminés par un pipeline.

Avant de commencer

Avant de configurer un pipeline ou un enregistrement, vous devez avoir créé un bus Eventarc Advanced.

Rôles requis

Un rôle Identity and Access Management (IAM) contient un ensemble d'autorisations qui vous permet d'effectuer des actions spécifiques sur les ressources Google Cloud . Les rôles et autorisations suivants sont requis lorsque vous créez un pipeline et un enregistrement pour acheminer les messages :

  • Pour obtenir l'autorisation nécessaire pour créer un pipeline, demandez à votre administrateur de vous accorder le rôle IAM Développeur Eventarc (roles/eventarc.developer) sur votre projet de pipeline. Ce rôle prédéfini contient l'autorisation eventarc.pipelines.create, qui est requise pour créer un pipeline.
  • Pour obtenir l'autorisation nécessaire pour créer un enregistrement, demandez à votre administrateur de vous accorder le rôle IAM Développeur Eventarc (roles/eventarc.developer) sur votre projet d'enregistrement. Ce rôle prédéfini contient l'autorisation eventarc.enrollments.create, qui est nécessaire pour créer une inscription.
  • Pour obtenir l'autorisation nécessaire pour utiliser un bus, demandez à votre administrateur de vous accorder le rôle IAM Utilisateur du bus de messages Eventarc (roles/eventarc.messageBusUser) sur votre projet de bus. Ce rôle prédéfini contient l'autorisation eventarc.buses.use, qui est nécessaire pour utiliser un bus.

Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès. Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

Créer une inscription et un pipeline

Vous pouvez créer un pipeline et un enregistrement de plusieurs manières :

  • Dans la console Google Cloud
  • En utilisant la Google Cloud CLI dans votre terminal ou Cloud Shell
  • en envoyant une requête à l'API Eventarc ;

Console

Dans la console Google Cloud , vous pouvez créer le pipeline et l'enregistrement en même temps depuis la page Pipelines.

  1. Pour créer un enregistrement, dans la console Google Cloud , accédez à la page Eventarc > Pipelines.

    Accéder à la page Pipelines

  2. Cliquez sur  > Créer un pipeline.

  3. Dans le volet Détails du pipeline, procédez comme suit :

    1. Saisissez un nom de pipeline. Il s'agit de l'ID de votre pipeline.
    2. Dans la liste Région, sélectionnez une région dans laquelle déployer votre pipeline. Le pipeline doit être créé dans la même région que le bus. Pour en savoir plus, consultez la page Emplacements Eventarc Advanced.
    3. Facultatif : Dans la liste Gravité du journal, sélectionnez la gravité minimale des événements décrits dans les entrées de journal. La valeur par défaut est Aucun. Pour en savoir plus, consultez LogSeverity.
    4. Facultatif : Dans la section Règle de réessai, vous pouvez modifier la configuration par défaut pour réessayer les événements.
    5. Pour Chiffrement, acceptez la valeur par défaut Google-managed encryption key ou sélectionnez Clé Cloud KMS. Pour en savoir plus, consultez Utiliser des clés de chiffrement gérées par le client (CMEK).
    6. Si vous sélectionnez Clé Cloud KMS, procédez comme suit :

      1. Dans la liste Type de clé, sélectionnez une méthode de gestion de vos clés.

        Vous pouvez gérer vos clés manuellement ou utiliser Autokey, qui vous permet de générer des trousseaux de clés et des clés à la demande. Si l'option Autokey est désactivée, cela indique qu'elle n'est pas encore intégrée au type de ressource actuel.

      2. Dans Sélectionner une clé gérée par le client, sélectionnez une clé.

        Notez que vous devez sélectionner une région pour pouvoir afficher vos clés gérées par le client.

      3. (Facultatif) Pour saisir manuellement le nom de ressource de la clé, dans la liste Sélectionner une clé gérée par le client, cliquez sur Saisir la clé manuellement, puis saisissez le nom de la clé au format spécifié.

      4. Si vous y êtes invité, attribuez le rôle cloudkms.cryptoKeyEncrypterDecrypter à l'agent de service Eventarc.

    7. Facultatif : Pour ajouter des libellés, cliquez sur Ajouter un libellé. Les libellés sont des paires clé/valeur qui vous aident à organiser vos ressourcesGoogle Cloud . Pour en savoir plus, consultez Que sont les libellés ?

    8. Cliquez sur Continuer.

  4. Dans le volet Inscriptions, procédez comme suit :

    1. Cliquez sur Ajouter une inscription.
    2. Saisissez un nom d'inscription.
    3. Dans la liste Bus, sélectionnez un bus auquel vous abonner.
    4. Dans le champ Expression CEL, écrivez une expression d'évaluation en CEL. Exemple :

      message.type == "google.cloud.dataflow.job.v1beta3.statusChanged"

      Notez que l'expression par défaut, true, indique que tous les messages sont routés sans être filtrés.

    5. Cliquez sur OK.

    6. Vous pouvez ajouter une autre inscription ou cliquer sur Continuer.

  5. Facultatif : Dans le volet Médiation des événements, procédez comme suit ou cliquez sur Continuer :

    1. Cochez la case Appliquer une transformation.
    2. Dans la liste Format d'entrée, sélectionnez le format applicable.

      Notez que lorsque vous appliquez une transformation, vous devez spécifier un format de données entrantes pour un pipeline, et que tous les événements doivent correspondre à ce format.

    3. Pour les formats Avro ou Protobuf, vous devez spécifier un schéma d'entrée. Vous pouvez également importer un schéma d'entrée. Pour en savoir plus, consultez Mettre en forme les événements reçus.

    4. Dans le champ Expression CEL, écrivez une expression de transformation en CEL.

    5. Cliquez sur Continuer.

  6. Dans le volet Destination, procédez comme suit :

    1. Dans la liste Type de destination, sélectionnez un type de destination vers lequel acheminer les messages. En fonction du type de destination, procédez comme suit :

      • Point de terminaison HTTP : spécifiez l'URI de destination. L'hôte peut être une adresse IP statique accessible depuis un réseau VPC (Virtual Private Cloud) ou le nom d'hôte DNS (Domain Name System) interne d'un service pouvant être résolu à l'aide de Cloud DNS.

        Par exemple, vous pouvez cibler une URL de service Cloud Run qui recevra les événements en tant que requêtes HTTP POST. Utilisez l'URL stable attribuée automatiquement run.app fournie lors du premier déploiement du service hébergé sur Cloud Run. Vous pouvez également cibler une table BigQuery qui recevra les événements sous forme de requêtes HTTP POST. Définissez une liaison de message pour construire la requête HTTP pour l'API BigQuery.

        Vous pouvez également utiliser ce type de destination pour spécifier un point de terminaison HTTP pour les fonctions Cloud Run (1re génération et version actuelle). Lorsque vous spécifiez un déclencheur HTTP pour une fonction Cloud Run, une URL est attribuée à cette fonction pour la réception des requêtes.

      • Bus Eventarc Advanced : sélectionnez un bus Eventarc Advanced. Le bus doit être déployé dans le même projet et la même région que le pipeline.

      • Workflow Workflows : sélectionnez un workflow Workflows. Vous pouvez déclencher l'exécution d'un workflow, qui correspond à une exécution unique de la logique contenue dans la définition d'un workflow. Le workflow doit être déployé dans le même projet que le pipeline.

      • Sujet Pub/Sub : sélectionnez ou créez un sujet Pub/Sub. Le sujet doit être créé avant que les messages puissent y être acheminés. Il doit également se trouver dans le même projet que le pipeline. Si vous utilisez un schéma de sujet, veillez à transformer votre message d'événement de manière appropriée.

      • Service Cloud Run (via HTTP) : sélectionnez un service Cloud Run qui recevra les événements sous forme de requêtes HTTP POST envoyées à son chemin d'URL racine (/). Vous pouvez également spécifier un chemin d'URL relatif sur le service de destination auquel les événements doivent être envoyés.

      • Job Cloud Run (via HTTP) : sélectionnez un job Cloud Run qui recevra les événements en tant que requêtes HTTP POST.

    2. Le cas échéant, sélectionnez un format dans la liste Format de sortie.

      Notez que si un format de données entrantes n'est pas spécifié pour un pipeline, un format sortant ne peut pas être défini.

    3. Le cas échéant, appliquez une liaison de message. Pour en savoir plus, consultez Définir une liaison de message.

    4. Pour activer l'authentification, cochez la case Activer l'authentification.

      1. Dans la liste En-tête d'authentification, sélectionnez le type de jeton à générer et à joindre en tant qu'en-tête Authorization dans la requête HTTP :

        • Un jeton OAuth ne doit généralement être utilisé que pour appeler les API Google hébergées sur *.googleapis.com. Vous pouvez également spécifier le champ d'application de ce jeton. Sinon, la valeur par défaut est https://www.googleapis.com/auth/cloud-platform. Pour les servicesGoogle Cloud , il est recommandé d'utiliser le champ d'applicationhttps://www.googleapis.com/auth/cloud-platform, qui inclut toutes les API Google Cloud , ainsi que Identity and Access Management (IAM), qui fournit un contrôle des accès précis.

          Notez que toutes les requêtes envoyées à un autre bus Eventarc Advanced, à Pub/Sub ou à Workflows doivent comporter un en-tête d'autorisation HTTP contenant un jeton OAuth signé par Google pour l'un des comptes de service autorisés.

        • Un jeton OIDC peut être utilisé dans de nombreux scénarios, y compris pour les points de terminaison où vous avez l'intention de valider le jeton vous-même. Spécifiez également l'audience à laquelle ce jeton est destiné. En général, elle doit correspondre à l'URL du pipeline cible. Si cette option n'est pas spécifiée, l'URL complète est utilisée, y compris les paramètres de requête.

          Notez que Cloud Run effectue une vérification IAM à chaque requête. Vous pouvez utiliser l'autorisation run.routes.invoke pour configurer les utilisateurs autorisés à accéder à votre service Cloud Run de l'une des manières suivantes :

          • Accordez l'autorisation de sélectionner des comptes de service ou des groupes pour autoriser l'accès au service. Toutes les requêtes doivent comporter un en-tête d'autorisation HTTP contenant un jeton OpenID Connect signé par Google pour l'un des comptes de service autorisés.

          • Accordez l'autorisation à allUsers pour autoriser l'accès non authentifié.

          Pour en savoir plus, consultez Contrôle des accès pour Cloud Run.

        En savoir plus sur les types de jetons

      2. Dans la liste Compte de service, sélectionnez le compte de service qui appellera votre service de destination. Vous pouvez également créer un compte de service.

        Cela spécifie l'adresse e-mail du compte de service IAM associé au pipeline et auquel vous avez précédemment attribué des rôles spécifiques requis par Eventarc Advanced.

  7. Cliquez sur Créer.

gcloud

Lorsque vous utilisez gcloud CLI, commencez par créer le pipeline, puis créez l'enregistrement à l'aide des commandes appropriées.

Pipeline

  1. Ouvrez un terminal.

  2. Créez un pipeline à l'aide de la commande gcloud eventarc pipelines create :

    gcloud eventarc pipelines create PIPELINE_NAME \
        --destinations=DESTINATION_KEY \
        --location=LOCATION

    Remplacez les éléments suivants :

    • PIPELINE_NAME : ID du pipeline ou nom complet
    • DESTINATION_KEY : une ou plusieurs paires clé-valeur pour configurer une destination pour le pipeline

      Vous ne devez définir qu'une seule des clés suivantes :

      • http_endpoint_uri : URI de destination. L'hôte peut être une adresse IP statique accessible depuis un réseau VPC (Virtual Private Cloud) ou le nom d'hôte DNS (Domain Name System) interne d'un service pouvant être résolu à l'aide de Cloud DNS. Vous pouvez également définir http_endpoint_message_binding_template pour spécifier une liaison de message.

        Vous pouvez utiliser cette clé pour cibler une URL de service Cloud Run qui recevra les événements en tant que requêtes HTTP POST. Utilisez l'URL run.app stable et attribuée automatiquement fournie lors du premier déploiement du service hébergé sur Cloud Run. Vous pouvez également cibler une table BigQuery qui recevra les événements sous forme de requêtes HTTP POST. Définissez une liaison de message pour construire la requête HTTP pour l'API BigQuery.

        Vous pouvez également utiliser ce type de destination pour spécifier un point de terminaison HTTP pour les fonctions Cloud Run (1re génération et version actuelle). Lorsque vous spécifiez un déclencheur HTTP pour une fonction Cloud Run, une URL est attribuée à cette fonction pour la réception des requêtes.

      • message_bus : ID d'un bus Eventarc Advanced. Le bus doit être déployé dans le même projet et la même région que le pipeline.

      • pubsub_topic : ID d'un sujet Pub/Sub. Le sujet doit être créé avant que les messages puissent y être acheminés. Si vous utilisez un schéma de sujet, veillez à transformer votre message d'événement de manière appropriée.

      • workflow : ID d'un workflow Workflows. Vous pouvez déclencher l'exécution d'un workflow, qui correspond à une exécution unique de la logique contenue dans la définition d'un workflow. Le workflow doit être déployé dans le même projet que le pipeline.

      Pour activer l'authentification, vous pouvez définir l'une des clés suivantes :

      • google_oidc_authentication_service_account : adresse e-mail du compte de service utilisée pour générer un jeton OIDC pouvant être utilisé dans de nombreux scénarios, y compris pour les points de terminaison où vous prévoyez de valider le jeton vous-même. Vous pouvez éventuellement définir google_oidc_authentication_audience pour spécifier l'audience à laquelle ce jeton est destiné. En règle générale, elle doit correspondre à l'URL du pipeline cible. Si cette option n'est pas spécifiée, l'URL complète est utilisée, y compris les paramètres de requête.

        Notez que Cloud Run effectue une vérification IAM à chaque requête. Vous pouvez utiliser l'autorisation run.routes.invoke pour configurer les utilisateurs autorisés à accéder à votre service Cloud Run de l'une des manières suivantes :

        • Accordez l'autorisation de sélectionner des comptes de service ou des groupes pour autoriser l'accès au service. Toutes les requêtes doivent comporter un en-tête d'autorisation HTTP contenant un jeton OpenID Connect signé par Google pour l'un des comptes de service autorisés.

        • Accordez l'autorisation à allUsers pour autoriser l'accès non authentifié.

        Pour en savoir plus, consultez Contrôle des accès pour Cloud Run .

      • oauth_token_authentication_service_account : adresse e-mail du compte de service utilisé pour générer un jeton OAuth, qui ne doit généralement être utilisé que pour appeler les API Google hébergées sur *.googleapis.com. Vous pouvez également définir oauth_token_authentication_scope pour spécifier le champ d'application de ce jeton. Sinon, la valeur par défaut est https://www.googleapis.com/auth/cloud-platform. Pour les servicesGoogle Cloud , il est recommandé d'utiliser le champ d'applicationhttps://www.googleapis.com/auth/cloud-platform, qui inclut toutes les API Google Cloud , ainsi que Identity and Access Management (IAM), qui fournit un contrôle des accès précis.

        Notez que toutes les requêtes envoyées à un autre bus Eventarc Advanced, à Pub/Sub ou à Workflows doivent comporter un en-tête d'autorisation HTTP contenant un jeton OAuth signé par Google pour l'un des comptes de service autorisés.

        En savoir plus sur les types de jetons

      Facultatif : Vous pouvez définir une des clés suivantes :

      • output_payload_format_avro_schema_definition
      • output_payload_format_json
      • output_payload_format_protobuf_schema_definition

        Notez que si vous définissez un format de sortie, vous devez également spécifier un format d'entrée (voir les options input-payload-format-* suivantes).

      Facultatif : Si http_endpoint_uri n'est pas utilisé comme clé de destination, vous pouvez définir les clés suivantes :

      • project : ID Google Cloud du projet de la ressource de destination. Par défaut, l'ID de projet du pipeline est utilisé.
      • location : emplacement de la ressource de destination. Par défaut, l'emplacement du pipeline est utilisé.
    • LOCATION : région Eventarc Advanced compatible

      Vous pouvez également définir la propriété d'emplacement de gcloud CLI :

      gcloud config set eventarc/location LOCATION
      

    Facultatif : Vous pouvez utiliser les options suivantes :

    • --async pour quitter immédiatement la commande, sans attendre la fin de l'opération en cours.
    • --crypto-key pour spécifier le nom complet d'une clé de chiffrement gérée par le client. Si aucune clé n'est spécifiée, Google-owned and managed keys est utilisé.
    • --logging-config pour configurer le niveau de journalisation, qui doit être l'un des suivants : NONE, DEBUG, INFO, NOTICE, WARNING, ERROR, CRITICAL, ALERT, EMERGENCY.
    • --mediations pour appliquer une transformation ; transformation_template est le seul modèle compatible et une seule médiation par pipeline est acceptée. Par exemple :

      --mediations=transformation_template='message.removeFields(["id\ ","credit_card_number","age"])'

      Notez que si vous appliquez une transformation, vous devez utiliser l'un des indicateurs suivants pour spécifier un format d'entrée.

    • L'une des options suivantes pour spécifier un format d'entrée :

      • --input-payload-format-avro-schema-definition
      • --input-payload-format-json
      • --input-payload-format-protobuf-schema-definition
    • --max-retry-attempts, --max-retry-delay et --min-retry-delay pour les événements de nouvelle tentative

    Exemple :

    gcloud eventarc pipelines create my-pipeline \
        --destinations=http_endpoint_uri='https://example-endpoint.com',oauth_token_authentication_service_account=example-service-account@example-project.gserviceaccount.iam.com,oauth_token_authentication_scope='https://www.googleapis.com/auth/cloud-platform',output_payload_format_avro_schema_definition='{"type": "record","name": "my_record", "fields": [{"name": "my_field", "type":"string"}]}' \
        --input-payload-format-avro-schema-definition='{"type":"record", "name": "my_record", "fields": [{"name": "my_field","type": "string"}]}' \
        --location=us-central1 \
        --async
    

    Pour en savoir plus et obtenir des exemples, consultez la documentation de gcloud CLI.

Inscription

  1. Ouvrez un terminal.

  2. Créez un enregistrement à l'aide de la commande gcloud eventarc enrollments create :

    gcloud eventarc enrollments create ENROLLMENT_NAME \
        --cel-match=MATCH_EXPRESSION \
        --destination-pipeline=PIPELINE_NAME \
        --message-bus=BUS_NAME \
        --message-bus-project=PROJECT_ID \
        --location=LOCATION

    Remplacez les éléments suivants :

    • ENROLLMENT_NAME : ID de l'inscription ou nom complet
    • MATCH_EXPRESSION : expression de correspondance pour cette inscription à l'aide de CEL, par exemple "message.type == 'google.cloud.dataflow.job.v1beta3.statusChanged'"
    • PIPELINE_NAME : ID du pipeline cible ou son nom complet pour cet enregistrement
    • BUS_NAME : ID du bus Eventarc Advanced ou son nom complet
    • PROJECT_ID : ID du projet Google Cloud pour le bus.
    • LOCATION : région Eventarc Advanced compatible

      Vous pouvez également définir la propriété d'emplacement de gcloud CLI :

      gcloud config set eventarc/location LOCATION
      

    Facultatif : Vous pouvez utiliser l'option suivante :

    • --async pour quitter immédiatement la commande, sans attendre la fin de l'opération en cours

    Exemple :

    gcloud eventarc enrollments create my-enrollment \
        --cel-match="message.type == 'google.cloud.dataflow.job.v1beta3.statusChanged'" \
        --destination-pipeline=my-pipeline \
        --message-bus=my-message-bus \
        --message-bus-project=another-google-cloud-project \
        --location=us-central1 \
        --async
    

API REST

Lorsque vous envoyez des requêtes à l'API Eventarc, commencez par créer le pipeline, puis l'inscription.

Pipeline

Pour créer un pipeline, utilisez la méthode projects.locations.pipelines.create.

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

  • name : nom de ressource complet du pipeline au format projects/PROJECT_ID/locations/LOCATION/pipelines/PIPELINE_NAME

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet Google Cloudpour le projet de pipeline
    • LOCATION : région dans laquelle le pipeline doit être déployé (par exemple, us-central1).
    • PIPELINE_NAME : nom du pipeline
  • LABEL_KEY et LABEL_VALUE : facultatifs. Il s'agit d'un mappage des paires clé/valeur de libellés qui vous aident à organiser vos ressources Google Cloud . Pour en savoir plus, consultez Que sont les libellés ?
  • ANNOTATION_KEY et ANNOTATION_VALUE : facultatifs. Carte des paires clé/valeur d'annotations de texte libre. Vous pouvez les utiliser pour joindre des informations arbitraires associées à la ressource. Pour en savoir plus, consultez Annotations.
  • LOG_SEVERITY : Facultatif. Gravité minimale de l'événement décrit dans une entrée de journal. Au choix : NONE, DEBUG, INFO, NOTICE, WARNING, ERROR, CRITICAL, ALERT ou EMERGENCY. La valeur par défaut est NONE. Pour en savoir plus, consultez LogSeverity.
  • destinations : destination vers laquelle les messages seront transférés. Vous pouvez éventuellement définir messageBindingTemplate pour spécifier une liaison de message. Pour en savoir plus, consultez la cible Destination. Une seule destination est acceptée :
    • httpEndpoint : URI de destination (HTTP_URI). L'hôte peut être une adresse IP statique accessible depuis un réseau cloud privé virtuel (VPC) ou le nom d'hôte Domain Name System (DNS) interne d'un service pouvant être résolu à l'aide de Cloud DNS.

      Par exemple, vous pouvez cibler une URL de service Cloud Run qui recevra les événements en tant que requêtes HTTP POST. Utilisez l'URL stable attribuée automatiquement run.app fournie lors du premier déploiement du service hébergé sur Cloud Run. Vous pouvez également cibler une table BigQuery qui recevra les événements sous forme de requêtes HTTP POST. Définissez une liaison de message pour construire la requête HTTP pour l'API BigQuery.

      Vous pouvez également utiliser ce type de destination pour spécifier un point de terminaison HTTP pour les fonctions Cloud Run (1re génération et version actuelle). Lorsque vous spécifiez un déclencheur HTTP pour une fonction Cloud Run, une URL est attribuée à cette fonction pour la réception des requêtes.

    • messageBus : un bus Eventarc Advanced. Le bus doit être déployé dans le même projet et la même région que le pipeline.
    • topic : sujet Pub/Sub qui doit d'abord être créé dans le même projet que le pipeline. Si vous utilisez un schéma de sujet, assurez-vous de transformer votre message d'événement de manière appropriée.
    • workflow : workflow Workflows. Vous pouvez déclencher l'exécution d'un workflow, qui correspond à une exécution unique de la logique contenue dans la définition d'un workflow. Le workflow doit être déployé dans le même projet que le pipeline.
  • SERVICE_ACCOUNT_EMAIL : nom de l'adresse e-mail du compte de service utilisé pour générer un jeton OIDC, qui peut être utilisé dans de nombreux scénarios, y compris pour les points de terminaison où vous avez l'intention de valider le jeton vous-même. Vous pouvez éventuellement définir audience pour spécifier l'audience à laquelle ce jeton est destiné. En règle générale, elle doit correspondre à l'URL du pipeline cible. Si cette option n'est pas spécifiée, l'URL complète est utilisée, y compris les paramètres de requête.

    Vous pouvez également utiliser oauthToken pour spécifier l'adresse e-mail du compte de service utilisé pour générer un jeton OAuth. Ce jeton ne doit généralement être utilisé que lors de l'appel des API Google hébergées sur *.googleapis.com. Vous pouvez éventuellement définir scope pour spécifier le champ d'application de ce jeton. Sinon, la valeur par défaut est https://www.googleapis.com/auth/cloud-platform. Pour les services Google Cloud, il est recommandé d'utiliser le champ d'applicationhttps://www.googleapis.com/auth/cloud-platform, qui inclut toutes les API Google Cloud , ainsi que Identity and Access Management (IAM), qui fournit un contrôle des accès précis.

    Notez que toutes les requêtes adressées à un autre bus Eventarc Advanced, Pub/Sub ou Workflows doivent comporter un en-tête d'autorisation HTTP contenant un jeton OAuth signé par Google pour l'un des comptes de service autorisés.

    En savoir plus sur les types de jetons

Corps JSON de la requête :

{
  "name": "projects/PROJECT_ID/regions/LOCATION/pipelines/PIPELINE_NAME",
  "labels": {"LABEL_KEY":"LABEL_VALUE"},
  "annotations": {"ANNOTATION_KEY":"ANNOTATION_VALUE"},
  "loggingConfig": {"logSeverity":"LOG_SEVERITY"},
  "destinations": [{"httpEndpoint": {"uri": "HTTP_URI"},
  "authenticationConfig": {"googleOidc": {"serviceAccount": "SERVICE_ACCOUNT_EMAIL"}}}]
}

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/pipelines/PIPELINE_NAME",
    "verb": "create",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

Inscription

Pour créer un enregistrement, utilisez la méthode projects.locations.enrollments.create.

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

  • ENROLLMENT_NAME : nom à afficher de votre inscription, par exemple my_enrollment.
  • MATCH_EXPRESSION : expression CEL identifiant les messages auxquels cette inscription s'applique. Par exemple, message.type == 'hello-world-type'.
  • destination : nom complet de la ressource du pipeline cible au format projects/PROJECT_ID/locations/LOCATION/pipelines/PIPELINE_NAME.

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet Google Cloudpour le projet de pipeline
    • LOCATION : région dans laquelle le pipeline est déployé (par exemple, us-central1).
    • PIPELINE_NAME : nom du pipeline
  • message_bus : nom de ressource complet du bus identifiant la source des messages au format projects/BUS_PROJECT_ID/locations/BUS_LOCATION/messageBuses/BUS_NAME.

    Remplacez les éléments suivants :

    • BUS_PROJECT_ID : Google Cloud ID du projet de bus
    • BUS_LOCATION : région dans laquelle le bus est déployé (par exemple, us-central1)
    • BUS_NAME : nom du bus de messages

Corps JSON de la requête :

{
  "display_name": "ENROLLMENT_NAME",
  "cel_match": "MATCH_EXPRESSION",
  "message_bus": "projects/BUS_PROJECT_ID/locations/BUS_LOCATION/messageBuses/BUS_NAME",
  "destination": "projects/PROJECT_ID/locations/LOCATION/pipelines/PIPELINE_NAME"
}

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/enrollments/ENROLLMENT_NAME",
    "verb": "create",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

Lister les inscriptions

Vous pouvez lister les inscriptions de différentes manières :

  • Dans la console Google Cloud
  • À l'aide de gcloud CLI dans votre terminal ou Cloud Shell
  • en envoyant une requête à l'API Eventarc ;

Console

  1. Pour lister les inscriptions d'un pipeline spécifique, dans la console Google Cloud , accédez à la page Eventarc > Pipelines.

    Accéder à la page Pipelines

  2. Cliquez sur le nom du pipeline pour lequel vous souhaitez lister les inscriptions.

    La page Détails du pipeline s'ouvre.

    L'onglet Enregistrements liste tous les enregistrements associés au pipeline.

gcloud

  1. Ouvrez un terminal.

  2. Répertoriez les inscriptions à l'aide de la commande gcloud eventarc enrollments list :

    gcloud eventarc enrollments list \
        --location=LOCATION

    Remplacez LOCATION par une région Eventarc Advanced compatible.

API REST

Pour lister les inscriptions, utilisez la méthode projects.locations.enrollments.list.

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

  • PROJECT_ID : ID de votre projet Google Cloud.
  • LOCATION : région dans laquelle les inscriptions sont créées (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 Enrollment et la réponse doit ressembler à ce qui suit :

{
  "enrollments": [
    {
      "name": "projects/PROJECT_ID/locations/LOCATION/enrollments/ENROLLMENT_NAME",
      "uid": "06e396f5-2d4f-43d2-961f-fd2c88403326",
      "createTime": "2025-03-26T17:57:25.214845320Z",
      "updateTime": "2025-03-26T17:57:45.136172180Z",
      "celMatch": "message.type == \"hello-world-type\"",
      "messageBus": "projects/PROJECT_ID/locations/LOCATION/messageBuses/BUS_NAME",
      "destination": "projects/PROJECT_ID/locations/LOCATION/pipelines/PIPELINE_NAME"
    },
    {...}
  ]
}

Supprimer une inscription

Vous pouvez supprimer une inscription de différentes manières :

  • Dans la console Google Cloud
  • À l'aide de gcloud CLI dans votre terminal ou Cloud Shell
  • en envoyant une requête à l'API Eventarc ;

Console

  1. Pour supprimer un enregistrement, dans la console Google Cloud , accédez à la page Eventarc > Pipelines.

    Accéder à la page Pipelines

  2. Cliquez sur le nom du pipeline à partir duquel vous souhaitez supprimer l'inscription.

    Le volet Détails du pipeline s'ouvre.

  3. Cliquez sur  Modifier.

  4. Cliquez sur Continuer.

    Le volet Inscriptions s'ouvre.

  5. Pour l'inscription que vous souhaitez supprimer, cliquez sur l'icône de suppression .

  6. Cliquez sur Enregistrer.

gcloud

  1. Ouvrez un terminal.

  2. Supprimez un enregistrement à l'aide de la commande gcloud eventarc enrollments delete :

    gcloud eventarc enrollments delete ENROLLMENT_NAME \
          --location=LOCATION

    Remplacez les éléments suivants :

API REST

Pour supprimer une inscription, utilisez la méthode projects.locations.enrollments.delete.

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

  • ENROLLMENT_NAME : nom à afficher de l'enregistrement que vous souhaitez supprimer, par exemple my_enrollment.
  • PROJECT_ID : ID de votre projet Google Cloud.
  • LOCATION : région dans laquelle l'inscription est déployée (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 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/enrollments/ENROLLMENT_NAME",
    "verb": "delete",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

Lister les pipelines

Vous pouvez lister les pipelines de différentes manières :

  • Dans la console Google Cloud
  • À l'aide de gcloud CLI dans votre terminal ou Cloud Shell
  • en envoyant une requête à l'API Eventarc ;

Console

Dans la console Google Cloud , accédez à la page Eventarc > Pipelines.

Accéder à la page Pipelines

Tous les pipelines sont listés. Vous pouvez éventuellement utiliser Filtre pour limiter une recherche.

gcloud

  1. Ouvrez un terminal.

  2. Répertoriez les inscriptions à l'aide de la commande gcloud eventarc pipelines list :

    gcloud eventarc pipelines list \
        --location=LOCATION

    Remplacez LOCATION par une région Eventarc Advanced compatible.

API REST

Pour lister les pipelines, utilisez la méthode projects.locations.pipelines.list.

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

  • PROJECT_ID : ID de votre projet Google Cloud.
  • LOCATION : région dans laquelle les pipelines 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 Pipeline et la réponse doit ressembler à ce qui suit :

{
  "pipelines": [
    {
      "name": "projects/PROJECT_ID/locations/LOCATION/pipelines/PIPELINE_NAME",
      "createTime": "2025-01-10T20:32:11.606516066Z",
      "updateTime": "2025-03-26T18:02:34.886616683Z",
      "uid": "7d58dd18-323a-43f6-a456-4f8c20a70218",
      "destinations": [
        {
          "httpEndpoint": {
            "uri": "HTTP_URI"
          },
          "authenticationConfig": {
            "googleOidc": {
              "serviceAccount": "SERVICE_ACCOUNT_EMAIL"
            }
          }
        }
      ],
      "loggingConfig": {
        "logSeverity": "NONE"
      },
      "retryPolicy": {
        "maxAttempts": 5,
        "minRetryDelay": "1s",
        "maxRetryDelay": "60s"
      }
    },
    {...}
  ]
}

Supprimer un pipeline

Vous pouvez supprimer un pipeline de différentes manières :

  • Dans la console Google Cloud
  • À l'aide de gcloud CLI dans votre terminal ou Cloud Shell
  • en envoyant une requête à l'API Eventarc ;

Notez que la suppression d'un pipeline peut prendre plus de 10 minutes.

Console

  1. Pour supprimer un pipeline, dans la console Google Cloud , accédez à la page Eventarc > Pipelines.

    Accéder à la page Pipelines

  2. Dans la liste des pipelines, cochez la case à côté du nom du pipeline que vous souhaitez supprimer.

  3. Cliquez sur Supprimer.

  4. Confirmez la suppression en saisissant Delete.

  5. Cliquez sur Supprimer.

gcloud

  1. Ouvrez un terminal.

  2. Supprimez un pipeline à l'aide de la commande gcloud eventarc pipelines delete :

    gcloud eventarc pipelines delete PIPELINE_NAME \
          --location=LOCATION

    Remplacez les éléments suivants :

API REST

Pour supprimer un pipeline, utilisez la méthode projects.locations.pipelines.delete.

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

  • PIPELINE_NAME : nom à afficher du pipeline que vous souhaitez supprimer, par exemple my_pipeline.
  • PROJECT_ID : ID de votre projet Google Cloud.
  • LOCATION : région dans laquelle le pipeline est déployé (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 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/pipelines/PIPELINE_NAME",
    "verb": "delete",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

Étapes suivantes