Router des événements vers un point de terminaison HTTP interne dans un réseau VPC

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 la destination cible.

Eventarc fournit des événements au destinataire d'événements au format CloudEvents via une requête HTTP.

Ces instructions vous expliquent comment configurer le routage d'événements pour tous les types d'événements vers un point de terminaison HTTP interne d'un réseau cloud privé virtuel (VPC). Pour configurer le déclencheur, vous devez également fournir un ID de rattachement de réseau.

  • Les types d'événements acceptés sont les suivants :

    • Événements directs : déclenchés par un événement immédiat, tel qu'une mise à jour d'un objet dans un bucket Cloud Storage ou un message publié dans un sujet Pub/Sub.

    • Événements Cloud Audit Logs : déclenchés lorsqu'un journal est généré via Cloud Audit Logs

    • Événements tiers : déclenchés par les événements d'un fournisseur non-Google qui propose une source Eventarc

  • Le point de terminaison HTTP interne peut être une adresse IP interne ou un nom DNS complet pour tout point de terminaison HTTP dans le réseau cloud privé virtuel. Voici deux exemples de destinations d'événements possibles :

    • Une instance de machine virtuelle (VM) Compute Engine : les instances Compute Engine peuvent exécuter des images publiques pour Linux et Windows Server fournies par Google, ainsi que des images personnalisées privées que vous pouvez créer ou importer à partir de vos systèmes existants. Pour plus d'informations, consultez la page Instances de machines virtuelles.
    • Un équilibreur de charge interne : un équilibreur de charge interne de couche 7 basé sur un proxy vous permet d'exécuter et de faire évoluer vos services derrière une adresse IP interne. Les équilibreurs de charge d'application internes répartissent le trafic HTTP et HTTPS entre les backends hébergés sur Compute Engine, Google Kubernetes Engine (GKE) et Cloud Run. Pour plus d'informations, consultez la page Présentation de l'équilibreur de charge d'application interne.
  • Un réseau VPC est une version virtuelle d'un réseau physique, mise en œuvre au sein du réseau de production de Google Un réseau VPC partagé est un réseau VPC défini au sein d'un projet hôte et mis à disposition en tant que réseau partagé de manière centralisée pour les ressources éligibles présentes dans les projets de service associés.

  • Un rattachement de réseau est une ressource régionale qui vous permet d'autoriser explicitement un producteur à se connecter à un réseau VPC client. Pour publier des événements, Eventarc utilise le rattachement de réseau pour établir une connexion au point de terminaison HTTP interne hébergé dans un réseau VPC.

Avant de commencer

Avant de créer un déclencheur Eventarc pour acheminer des événements vers un point de terminaison HTTP interne d'un réseau VPC, vous devez créer un rattachement réseau qui accepte les connexions dans le réseau et la région contenant le service de destination HTTP.

Dans ces instructions, nous partons du principe que vous avez déjà créé un réseau et un sous-réseau VPC, et que vous avez déployé votre service de destination HTTP.

Pour plus d'informations, consultez la section Recevoir des événements Pub/Sub sur un point de terminaison HTTP interne d'un réseau VPC qui explique comment déployer un point de terminaison HTTP interne dans un réseau VPC et router des événements Pub/Sub vers le point de terminaison.

Limitations connues

Les limites suivantes s'appliquent lors du routage d'événements vers un point de terminaison HTTP interne au sein d'un réseau VPC :

  • Vous ne pouvez pas créer plusieurs déclencheurs Eventarc pour le même nom DNS.

  • La limite est de 100 déclencheurs Eventarc pour les points de terminaison HTTP internes par projet.

  • Seuls les emplacements de déclencheurs Eventarc suivants sont compatibles :

    • asia-east1
    • europe-north1
    • europe-west1
    • us-central1
    • us-east1

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

Avant de créer un déclencheur, procédez comme suit :

Console

  1. Dans la console Google Cloud, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  2. Activez les API Cloud Logging et Eventarc.

    Activer les API

  3. Le cas échéant, activez l'API associée aux événements directs. Par exemple, pour les événements Cloud Functions, activez cloudfunctions.googleapis.com.

  4. Si vous n'en avez pas encore, créez un compte de service géré par l'utilisateur, puis accordez-lui les rôles et les autorisations nécessaires pour qu'Eventarc puisse gérer les événements de votre service cible.

    1. Dans la console Google Cloud, accédez à la page Créer un compte de service.

      Accéder à la page "Créer un compte de service"

    2. Sélectionnez votre projet.

    3. Dans le champ Nom du compte de service, saisissez un nom. La console Google Cloud remplit le champ ID du compte de service en fonction de ce nom.

      Dans le champ Description du compte de service, saisissez une description. Exemple : Service account for event trigger.

    4. Cliquez sur Créer et continuer.

    5. Pour fournir un accès approprié, dans la liste Sélectionner un rôle, sélectionnez les rôles IAM (Identity and Access Management) requis à attribuer à votre compte de service. Pour en savoir plus, consultez la section Rôles et autorisations pour un point de terminaison HTTP interne dans un réseau VPC.

      Pour ajouter des rôles supplémentaires, cliquez sur Ajouter un autre rôle et ajoutez chaque rôle supplémentaire.

    6. Cliquez sur Continuer.

    7. Pour terminer la création du compte, cliquez sur OK.

  5. Si vous créez un déclencheur pour des événements directs à partir de Cloud Storage, attribuez le rôle Éditeur Pub/Sub (roles/pubsub.publisher) à l'agent de service Cloud Storage :

    1. Dans la console Google Cloud, accédez à la page IAM.

      Accéder à IAM

    2. Cochez la case Inclure les attributions de rôles fournies par Google.

    3. Dans la colonne Compte principal, recherchez l'agent de service Cloud Storage au format service-PROJECT_NUMBER@gs-project-accounts.iam.gserviceaccount.com, puis cliquez sur Modifier le compte principal dans la ligne correspondante.

    4. Cliquez sur Ajouter un rôle ou sur Ajouter un autre rôle.

    5. Dans la liste Sélectionner un rôle, définissez un filtre sur Diffuseur Pub/Sub, puis sélectionnez le rôle.

    6. Cliquez sur Enregistrer.

  6. Si l'URI du point de terminaison HTTP interne du réseau VPC utilise le nom DNS interne d'un service pouvant être résolu par Cloud DNS, accordez le rôle de pair DNS (roles/dns.peer) sur le projet hôte VPC pour l'agent de service Eventarc.

    Notez que selon la configuration du réseau VPC, le projet hôte VPC peut également être votre projet déclencheur Eventarc.

    1. Dans la console Google Cloud, sur la page de sélection du projet, sélectionnez le projet hôte VPC.

      Accéder au sélecteur de projet

    2. Dans la console Google Cloud, accédez à la page IAM.

      Accéder à IAM

    3. Cochez la case Inclure les attributions de rôles fournies par Google.

    4. Modifiez ou ajoutez l'agent de service Eventarc en tant que compte principal :

      • Si l'agent de service Eventarc dispose déjà d'autres rôles sur le projet, recherchez la ligne contenant le compte principal au format service-PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com, puis cliquez sur Modifier le compte principal sur cette ligne, et sur Ajouter un autre rôle.

      • Si l'agent de service Eventarc ne possède aucun rôle existant sur le projet, cliquez sur Accorder l'accès, puis saisissez l'adresse e-mail au format suivant : service-PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com.

      Remplacez PROJECT_NUMBER par le numéro de projet Google Cloud pour votre projet déclencheur Eventarc. Vous pouvez trouver le numéro de votre projet sur la page Bienvenue de la console Google Cloud ou en exécutant la commande suivante :

      gcloud projects describe PROJECT_ID --format='value(projectNumber)'
    5. Dans la liste Sélectionner un rôle, définissez un filtre sur Pair DNS, puis sélectionnez le rôle.

    6. Cliquez sur Enregistrer.

gcloud

  1. Dans la console Google Cloud, activez Cloud Shell.

    Activer Cloud Shell

    En bas de la fenêtre de la console Google Cloud, une session Cloud Shell démarre et affiche une invite de ligne de commande. Cloud Shell est un environnement shell dans lequel Google Cloud CLI est déjà installé, et dans lequel des valeurs sont déjà définies pour votre projet actuel. L'initialisation de la session peut prendre quelques secondes.

  2. Activez les API Cloud Logging, Eventarc et Eventarc Publishing.

    gcloud services enable logging.googleapis.com \
      eventarc.googleapis.com \
      eventarcpublishing.googleapis.com
    
  3. Le cas échéant, activez l'API associée aux événements. Par exemple, pour les événements Cloud Functions, activez cloudfunctions.googleapis.com.

  4. Si vous n'en avez pas encore, créez un compte de service géré par l'utilisateur, puis accordez-lui les rôles et les autorisations nécessaires pour qu'Eventarc puisse gérer les événements de votre service cible.

    1. Créez le compte de service :

      gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
      

      Remplacez SERVICE_ACCOUNT_NAME par le nom du compte de service. Il doit comporter entre 6 et 30 caractères alphanumériques pouvant inclure des minuscules et des tirets. Une fois le compte de service créé, vous ne pouvez pas en modifier le nom.

    2. Attribuez les rôles ou les autorisations IAM (Identity and Access Management) requis. Pour en savoir plus, consultez la section Rôles et autorisations pour un point de terminaison HTTP interne dans un réseau VPC.

  5. Si l'URI du point de terminaison HTTP interne du réseau VPC utilise le nom DNS interne d'un service pouvant être résolu par Cloud DNS, accordez le rôle de pair DNS (roles/dns.peer) sur le projet hôte VPC pour l'agent de service Eventarc.

    Notez que selon la configuration du réseau VPC, le projet hôte VPC peut également être votre projet déclencheur Eventarc.

    gcloud projects add-iam-policy-binding VPC_HOST_PROJECT_ID \
        --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com \
        --role=roles/dns.peer

    Remplacez les éléments suivants :

    • VPC_HOST_PROJECT_ID : ID du projet Google Cloud pour le projet hôte de VPC.
    • PROJECT_NUMBER : numéro de projet Google Cloud pour votre projet déclencheur Eventarc. Vous pouvez trouver le numéro de votre projet sur la page Bienvenue de la console Google Cloud ou en exécutant la commande suivante :
    gcloud projects describe PROJECT_ID --format='value(projectNumber)'
  6. Si vous créez un déclencheur pour des événements directs à partir de Cloud Storage, attribuez le rôle Diffuseur Pub/Sub (roles/pubsub.publisher) sur le projet à l'agent de service Cloud Storage :

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:service-PROJECT_NUMBER@gs-project-accounts.iam.gserviceaccount.com \
        --role=roles/pubsub.publisher

Créer un déclencheur

Vous pouvez créer un déclencheur Eventarc à l'aide de Google Cloud CLI ou de la console Google Cloud.

Console

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

    Accéder à la page "Déclencheurs"

  2. Cliquez sur Créer un déclencheur.
  3. Saisissez un nom de déclencheur

    Il s'agit de l'ID du déclencheur, qui doit commencer par une lettre. Il peut contenir jusqu'à 63 lettres minuscules, chiffres ou traits d'union.

  4. Dans le champ Type de déclencheur, sélectionnez Sources Google ou Tiers.
  5. Sélectionnez un fournisseur d'événements.

    Il s'agit du service qui est la source des événements. Pour une source Google, cela se fait directement ou via ses journaux d'audit.

  6. Selon le type d'événement que vous acheminez, effectuez l'une des opérations suivantes :
    1. Événements directs : dans la liste Type d'événement, sélectionnez un type d'événement parmi les événements directs.
      1. Pour les événements Cloud Pub/Sub directs, dans la liste Sélectionner un sujet Cloud Pub/Sub, sélectionnez un sujet ou acceptez la valeur par défaut Aucun afin qu'un sujet soit créé pour vous.
      2. Pour les événements Cloud Storage directs, spécifiez ou recherchez l'identifiant global unique du bucket Cloud Storage.
    2. Événements du journal d'audit : dans la liste Type d'événement, dans les événements via Cloud Audit Logs, sélectionnez un type d'événement, puis l'une des options suivantes :
      • Toute ressource : il s'agit de la valeur par défaut qui inclut les ressources créées dynamiquement et bénéficiant d'identifiants générés au moment de la création.
      • Ressource spécifique : vous devez indiquer le nom complet de la ressource.
      • Format de chemin d'accès : vous pouvez filtrer les ressources à l'aide d'un format de chemin d'accès. Par exemple, saisissez projects/_/buckets/eventarc-bucket/objects/random.txt ou projects/_/buckets/**/r*.txt.
    3. Événements tiers : dans la liste Canal, sélectionnez un canal, puis, dans la liste Type d'événement, sélectionnez un événement.

      Pour en savoir plus, consultez la section Créer un canal et récupérer ses détails.

  7. Le cas échéant, sélectionnez application/json ou application/protobuf dans la liste Type de contenu de données d'événement pour spécifier l'encodage de la charge utile de l'événement.

    Notez qu'une charge utile d'événement au format JSON est supérieure à celle au format Protobuf. Cela peut avoir un impact sur la fiabilité en fonction de la destination de l'événement et de ses limites de taille. Pour en savoir plus, consultez la section Problèmes connus.

  8. Le cas échéant, cliquez sur Ajouter un filtre et spécifiez les éléments suivants :
    1. Dans le champ Attribut 1, en fonction de l'événement direct que vous avez choisi, sélectionnez l'ID de ressource pouvant servir de filtre d'événement.
    2. Sélectionnez un opérateur :
    3. Dans le champ Valeur d'attribut 1, saisissez la valeur exacte ou appliquez un format de chemin d'accès en fonction de l'opérateur que vous avez choisi.
    4. Si un champ Attribut 2 est applicable, spécifiez les valeurs appropriées.
  9. Dans la liste Région, sélectionnez une région.

    Pour éviter tout problème de performances et de résidence des données, l'emplacement doit correspondre à celui du service Google Cloud qui génère les événements.

    Notez que pour cette destination d'événements, seuls les emplacements suivants sont acceptés :

    • asia-east1
    • europe-north1
    • europe-west1
    • us-east1

    Pour en savoir plus, consultez la page Emplacements Eventarc.

  10. Sélectionnez le compte de service qui appellera votre service.

    Vous pouvez également créer un nouveau compte de service.

    Cela spécifie l'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.

  11. Dans la liste Destination de l'événement, sélectionnez Point de terminaison HTTP (interne).
    1. Spécifiez l'URI de destination. Il s'agit de l'URI du point de terminaison HTTP interne du réseau VPC qui reçoit les événements du déclencheur. L'URI peut être une adresse IP interne statique du réseau VPC adressé par le rattachement de réseau ou le nom DNS interne d'un service pouvant être résolu par Cloud DNS.

      Si le point de terminaison HTTP utilise un nom DNS interne, Eventarc crée automatiquement des zones d'appairage DNS et transfère les requêtes DNS aux zones DNS du réseau VPC cible. L'appairage DNS vous permet d'envoyer les requêtes des enregistrements provenant de l'espace de noms d'une zone à un autre réseau VPC. Pour en savoir plus, consultez les sections Zones d'appairage et Créer une zone d'appairage.

      Notez que vous ne pouvez pas créer plus d'un déclencheur pour le même nom DNS.

    2. Dans la liste Rattachement de réseau, sélectionnez un identifiant pour la ressource de rattachement de réseau. Cet identifiant est généré après la création d'un rattachement de réseau. Pour en savoir plus, consultez la page Créer des rattachements de réseau.

      Les rattachements de réseau permettent aux réseaux VPC du producteur de services d'établir des connexions aux réseaux VPC utilisateur. Eventarc utilise le rattachement de réseau pour établir une connexion au point de terminaison HTTP interne hébergé dans le réseau VPC du client et publier des événements.

      Lorsque vous créez un rattachement de réseau, vous pouvez autoriser explicitement une connexion via les listes d'acceptation et de rejet du producteur. Toutefois, Eventarc peut mettre à jour la liste d'acceptation d'un rattachement de réseau avec l'ID de projet approprié, sans aucune intervention de votre part.

  12. Cliquez sur Créer.
  13. Une fois le déclencheur créé, vous ne pouvez plus modifier les filtres de source d'événement. À la place, vous devez créer un nouveau déclencheur et supprimer l'ancien. Pour en savoir plus, consultez la section Gérer les déclencheurs.

gcloud

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 directs

gcloud eventarc triggers create TRIGGER \
    --location=LOCATION \
    --destination-http-endpoint-uri=ENDPOINT_URI \
    --network-attachment=NETWORK_ATTACHMENT_ID \
    --event-filters="type=EVENT_FILTER_TYPE" \
    --event-filters="COLLECTION_ID=RESOURCE_ID" \
    --event-filters-path-pattern="COLLECTION_ID=PATH_PATTERN" \
    --service-account=SERVICE_ACCOUNT_NAME@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).

    Pour éviter tout problème de performances et de résidence des données, l'emplacement doit correspondre à celui du service Google Cloud qui génère les événements.

    Notez que pour cette destination d'événements, seuls les emplacements suivants sont acceptés :

    • asia-east1
    • europe-north1
    • europe-west1
    • us-central1
    • us-east1

    Pour en savoir plus, consultez la page Emplacements Eventarc.

  • ENDPOINT_URI : URI du point de terminaison HTTP interne du réseau VPC qui reçoit les événements du déclencheur. L'URI peut être une adresse IP interne statique du réseau VPC adressé par le rattachement de réseau ou le nom DNS interne d'un service pouvant être résolu par Cloud DNS.

    Si le point de terminaison HTTP utilise un nom DNS interne, Eventarc crée automatiquement des zones d'appairage DNS et transfère les requêtes DNS aux zones DNS du réseau VPC cible. L'appairage DNS vous permet d'envoyer les requêtes des enregistrements provenant de l'espace de noms d'une zone à un autre réseau VPC. Pour en savoir plus, consultez les sections Zones d'appairage et Créer une zone d'appairage.

    Notez que vous ne pouvez pas créer plus d'un déclencheur pour le même nom DNS.

  • NETWORK_ATTACHMENT_ID : identifiant unique de la ressource de rattachement de réseau. L'identifiant est généré après la création d'un rattachement de réseau. Pour en savoir plus, consultez la page Créer des rattachements de réseau.

    Les rattachements de réseau permettent aux réseaux VPC du producteur de services d'établir des connexions aux réseaux VPC utilisateur. Eventarc utilise le rattachement de réseau pour établir une connexion au point de terminaison HTTP interne hébergé dans le réseau VPC du client et publier des événements.

    Lorsque vous créez un rattachement de réseau, vous pouvez autoriser explicitement une connexion via les listes d'acceptation et de rejet du producteur. Toutefois, Eventarc peut mettre à jour la liste d'acceptation d'un rattachement de réseau avec l'ID de projet approprié, sans aucune intervention de votre part.

  • EVENT_FILTER_TYPE : identifiant de l'événement. Un événement est généré lorsqu'un appel d'API pour la méthode réussit. Pour les opérations de longue durée, l'événement n'est généré qu'à la fin de l'opération et uniquement si l'action s'est bien déroulée. Consultez la liste des types d'événements directs compatibles.

  • COLLECTION_ID (facultatif) : composant ressource pouvant agir en tant que filtre d'événement. Par exemple, pour Cloud Functions, il s'agit de function.

  • RESOURCE_ID : identifiant de la ressource utilisé comme valeur de filtrage pour la collection associée. Pour en savoir plus, consultez la section ID de ressource.

  • PATH_PATTERN : format de chemin d'accès à appliquer lors du filtrage de la ressource.

  • SERVICE_ACCOUNT_NAME : nom de votre compte de service géré par l'utilisateur.

  • PROJECT_ID : ID de votre projet Google Cloud.

Remarques :

  • L'option --event-filters="type=EVENT_FILTER_TYPE" est obligatoire. Si aucun autre filtre d'événement n'est défini, les événements de toutes les ressources sont mis en correspondance.
  • EVENT_FILTER_TYPE ne peut pas être modifié après sa création. Pour modifier EVENT_FILTER_TYPE, créez un nouveau déclencheur et supprimez l'ancien.
  • Chaque déclencheur peut comporter plusieurs filtres d'événement, séparés par une virgule et spécifiés dans une option --event-filters=[ATTRIBUTE=VALUE,…], 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. Toutefois, lorsque vous utilisez l'option --event-filters-path-pattern, vous pouvez définir un format de chemin d'accès pour les ressources.
  • L'option --service-account permet de spécifier l'adresse e-mail du compte de service IAM associé au déclencheur.

Exemple :

gcloud eventarc triggers create helloworld-trigger \
    --location=us-central1 \
    --destination-http-endpoint-uri=http://my-vm.us-central1-a.c.my-project.internal \
    --network-attachment="projects/my-project/regions/us-central1/networkAttachments/my-attachment-name" \
    --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \
    --service-account=my-service-account@my-project.iam.gserviceaccount.com

Événements du journal d'audit

gcloud eventarc triggers create TRIGGER \
    --location=LOCATION \
    --destination-http-endpoint-uri=ENDPOINT_URI \
    --network-attachment=NETWORK_ATTACHMENT_ID \
    --event-filters="type=google.cloud.audit.log.v1.written" \
    --event-filters="serviceName=SERVICE_NAME" \
    --event-filters="methodName=METHOD_NAME" \
    --service-account=SERVICE_ACCOUNT_NAME@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).

    Pour éviter tout problème de performances et de résidence des données, l'emplacement doit correspondre à celui du service Google Cloud qui génère les événements. Les emplacements suivants sont acceptés :

    • asia-east1
    • europe-north1
    • europe-west1
    • us-central1
    • us-east1

    Pour en savoir plus, consultez la page Emplacements Eventarc.

  • ENDPOINT_URI : URI du point de terminaison HTTP interne du réseau VPC qui reçoit les événements du déclencheur. L'URI peut être une adresse IP interne statique du réseau VPC adressé par le rattachement de réseau ou le nom DNS interne d'un service pouvant être résolu par Cloud DNS.

    Si le point de terminaison HTTP utilise un nom DNS interne, Eventarc crée automatiquement des zones d'appairage DNS et transfère les requêtes DNS aux zones DNS du réseau VPC cible. L'appairage DNS vous permet d'envoyer les requêtes des enregistrements provenant de l'espace de noms d'une zone à un autre réseau VPC. Pour en savoir plus, consultez les sections Zones d'appairage et Créer une zone d'appairage.

    Notez que vous ne pouvez pas créer plus d'un déclencheur pour le même nom DNS.

  • NETWORK_ATTACHMENT_ID : identifiant unique de la ressource de rattachement de réseau. L'identifiant est généré après la création d'un rattachement de réseau. Pour en savoir plus, consultez la page Créer des rattachements de réseau.

    Les rattachements de réseau permettent aux réseaux VPC du producteur de services d'établir des connexions aux réseaux VPC utilisateur. Eventarc utilise le rattachement de réseau pour établir une connexion au point de terminaison HTTP interne hébergé dans le réseau VPC du client et publier des événements.

    Lorsque vous créez un rattachement de réseau, vous pouvez autoriser explicitement une connexion via les listes d'acceptation et de rejet du producteur. Toutefois, Eventarc peut mettre à jour la liste d'acceptation d'un rattachement de réseau avec l'ID de projet approprié, sans aucune intervention de votre part.

  • SERVICE_NAME : l'identifiant du service Google Cloud. Consultez la liste des types d'événements de journaux d'audit compatibles.

  • METHOD_NAME : identifiant de l'opération. Consultez la liste des types d'événements de journaux d'audit compatibles.

  • SERVICE_ACCOUNT_NAME : nom de votre compte de service géré par l'utilisateur.

  • 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"
  • 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.
  • Chaque déclencheur peut comporter plusieurs filtres d'événement, séparés par une virgule et spécifiés dans une option --event-filters=[ATTRIBUTE=VALUE,…], 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. Toutefois, lorsque vous utilisez l'option --event-filters-path-pattern, vous pouvez définir un format de chemin d'accès pour les ressources.
  • Une fois le déclencheur créé, le type de filtre d'événements ne peut plus être modifié. Pour un type d'événement différent, vous devez créer un déclencheur.
  • L'option --service-account permet de spécifier l'adresse e-mail du compte de service IAM associé au déclencheur.

Exemple :

gcloud eventarc triggers create helloworld-trigger \
    --location=us-central1 \
    --destination-http-endpoint-uri=http://10.10.10.2 \
    --network-attachment="projects/my-project/regions/us-central1/networkAttachments/my-attachment" \
    --event-filters="type=google.cloud.audit.log.v1.written" \
    --event-filters="serviceName=eventarc.googleapis.com" \
    --event-filters="methodName=google.cloud.eventarc.v1.Eventarc.GetTrigger" \
    --event-filters="resourceName=projects/my-project/locations/us-central1/triggers/my-trigger" \
    --service-account=my-service-account@my-project.iam.gserviceaccount.com

Événements tiers

gcloud eventarc triggers create TRIGGER \
    --location=LOCATION \
    --destination-http-endpoint-uri=ENDPOINT_URI \
    --network-attachment=NETWORK_ATTACHMENT_ID \
    --event-filters="type=EVENT_FILTER_TYPE" \
    --channel=CHANNEL_NAME \
    --project=PROJECT_ID \
    --service-account=SERVICE_ACCOUNT_NAME@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).

    Pour éviter tout problème de performances et de résidence des données, l'emplacement doit correspondre à celui du service Google Cloud qui génère les événements.

    Notez que pour cette destination d'événements, seuls les emplacements suivants sont acceptés :

    • asia-east1
    • europe-north1
    • europe-west1
    • us-central1
    • us-east1

    Pour en savoir plus, consultez la page Emplacements Eventarc.

  • ENDPOINT_URI : URI du point de terminaison HTTP interne du réseau VPC qui reçoit les événements du déclencheur. L'URI peut être une adresse IP interne statique du réseau VPC adressé par le rattachement de réseau ou le nom DNS interne d'un service pouvant être résolu par Cloud DNS.

    Si le point de terminaison HTTP utilise un nom DNS interne, Eventarc crée automatiquement des zones d'appairage DNS et transfère les requêtes DNS aux zones DNS du réseau VPC cible. L'appairage DNS vous permet d'envoyer les requêtes des enregistrements provenant de l'espace de noms d'une zone à un autre réseau VPC. Pour en savoir plus, consultez les sections Zones d'appairage et Créer une zone d'appairage.

    Notez que vous ne pouvez pas créer plus d'un déclencheur pour le même nom DNS.

  • NETWORK_ATTACHMENT_ID : identifiant unique de la ressource de rattachement de réseau. L'identifiant est généré après la création d'un rattachement de réseau. Pour en savoir plus, consultez la page Créer des rattachements de réseau.

    Les rattachements de réseau permettent aux réseaux VPC du producteur de services d'établir des connexions aux réseaux VPC utilisateur. Eventarc utilise le rattachement de réseau pour établir une connexion au point de terminaison HTTP interne hébergé dans le réseau VPC du client et publier des événements.

    Lorsque vous créez un rattachement de réseau, vous pouvez autoriser explicitement une connexion via les listes d'acceptation et de rejet du producteur. Toutefois, Eventarc peut mettre à jour la liste d'acceptation d'un rattachement de réseau avec l'ID de projet approprié, sans aucune intervention de votre part.

  • EVENT_FILTER_TYPE : type d'événement accepté par le fournisseur. Consultez la liste des types d'événements tiers compatibles.

  • CHANNEL_NAME : nom du canal. Pour en savoir plus, consultez la section Créer un canal et récupérer ses détails.

  • PROJECT_ID : ID de votre projet Google Cloud.

  • SERVICE_ACCOUNT_NAME : nom de votre compte de service géré par l'utilisateur.

Remarques :

  • L'option --event-filters="type=EVENT_FILTER_TYPE" est obligatoire. Si aucun autre filtre d'événement n'est défini, les événements de toutes les ressources sont mis en correspondance.
  • EVENT_FILTER_TYPE ne peut pas être modifié après sa création. Pour modifier EVENT_FILTER_TYPE, créez un nouveau déclencheur et supprimez l'ancien.
  • Chaque déclencheur peut comporter plusieurs filtres d'événement, séparés par une virgule et spécifiés dans une option --event-filters=[ATTRIBUTE=VALUE,…], 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 associé au déclencheur.

Exemple :

gcloud eventarc triggers create helloworld-trigger \
    --location=us-central1 \
    --destination-http-endpoint-uri=http://my-vm.us-central1-a.c.my-project.internal \
    --network-attachment="projects/my-project/regions/us-central1/networkAttachments/my-attachment-name" \
    --event-filters="type=third-party-event-type" \
    --channel=my-channel \
    --project=my-project-ID \
    --service-account=my-service-account@my-project.iam.gserviceaccount.com

Répertorier un déclencheur

Vous pouvez confirmer la création d'un déclencheur en répertoriant les déclencheurs Eventarc à l'aide de Google Cloud CLI ou de la console Google Cloud.

Console

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

    Accéder à la page "Déclencheurs"

    Cette page répertorie vos déclencheurs dans tous les emplacements et inclut des détails tels que les noms, les régions, les fournisseurs d'événements, les destinations, etc.

  2. Pour filtrer vos déclencheurs, procédez comme suit :

    1. Cliquez sur Filtrer ou sur le champ Filtrer les déclencheurs.
    2. Dans la liste Propriétés, sélectionnez une option permettant de filtrer les déclencheurs.

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

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

gcloud

Exécutez la commande suivante pour répertorier vos déclencheurs :

gcloud eventarc triggers list --location=-

Cette commande répertorie vos déclencheurs dans tous les emplacements et inclut des détails tels que les noms, les types, les destinations et les états.

Étapes suivantes