Vous pouvez activer la collecte et la publication d'événements provenant de sources Google pour un bus Eventarc Advanced spécifique en créant une ressource GoogleApiSource
.
Les événements provenant de sources Google sont déclenchés directement par un événement non médiatisé, tel que la création d'une fonction Cloud Run ou un changement d'état d'un job Dataflow. Pour en savoir plus, consultez Types d'événements Google compatibles avec Eventarc.
Veuillez noter les points suivants :
- Par défaut, les événements sont collectés à partir du projet Google Cloud dans lequel la ressource
GoogleApiSource
existe. Vous pouvez également utiliser la gcloud CLI pour collecter des événements provenant de plusieurs projets appartenant à la même organisation que la ressourceGoogleApiSource
. Pour en savoir plus, consultez la section Publier des événements à partir de plusieurs projets dans ce document. - Vous pouvez publier des événements dans un bus qui se trouve dans un autre Google Cloud projet que celui dans lequel la ressource
GoogleApiSource
existe. Vous pouvez configurer cette option à l'aide de gcloud CLI ou en envoyant une requête à l'API Eventarc (mais pas via la console Google Cloud ). - La limite est d'une ressource
GoogleApiSource
par projet et par région. Google Cloud
Avant de commencer
Avant de commencer, assurez-vous d'avoir effectué les étapes suivantes :
Si vous utilisez Google Cloud CLI pour exécuter les commandes sur cette page, installez puis initialisez gcloud CLI. Si vous avez déjà installé la gcloud CLI, obtenez la dernière version en exécutant la commande
gcloud components update
.Activez l'API Eventarc et l'API Eventarc Publishing :
Console
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.gcloud
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.gcloud services enable eventarc.googleapis.com
eventarcpublishing.googleapis.com
Activer les événements provenant de sources Google
Pour publier des événements à partir de sources Google, vous devez créer une ressource GoogleApiSource
. Cette ressource représente un abonnement aux événements d'API Google dans un projet Google Cloud spécifique pour un bus Eventarc Advanced particulier.
Vous pouvez activer la publication d'événements provenant de sources Google de différentes 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 , accédez à la page Eventarc > Bus.
Vous pouvez créer un bus ou, si vous mettez à jour un bus, cliquez sur Modifier.
Sur la page Modifier le bus, pour ajouter une source de message, cliquez sur
Ajouter une source.- Dans le volet Ajouter une source de message, pour le fournisseur de messages de l'API Google, acceptez la valeur par défaut
google-api-source
ou saisissez un autre nom de source de message. - Cliquez sur Créer.
- Dans le volet Ajouter une source de message, pour le fournisseur de messages de l'API Google, acceptez la valeur par défaut
Cliquez sur Enregistrer.
gcloud
Ouvrez un terminal.
Vous pouvez activer les événements provenant de sources Google à l'aide de la commande
gcloud eventarc google-api-sources create
:gcloud eventarc google-api-sources create GOOGLE_API_SOURCE_NAME \ --destination-message-bus=BUS_NAME \ --destination-message-bus-project=BUS_PROJECT_ID
Remplacez les éléments suivants :
GOOGLE_API_SOURCE_NAME
: ID ou identifiant complet de votre ressourceGoogleApiSource
qui représente un abonnement aux événements de l'API Google pour un bus spécifiqueBUS_NAME
: ID ou identifiant complet du bus auquel vous souhaitez vous abonner pour recevoir les événements de l'API Google.BUS_PROJECT_ID
: ID du projet Google Cloud pour le bus
Facultatif : Vous pouvez également 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
. Pour en savoir plus, consultezLogSeverity
.
API REST
Pour activer les événements provenant de sources Google, utilisez la méthode projects.locations.googleApiSources.create
.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
GOOGLE_API_SOURCE_NAME
: nom à afficher de la ressourceGoogleApiSource
qui représente un abonnement aux événements de l'API Google pour un bus spécifique (par exemple,my_google_source
).LABEL_KEY
etLABEL_VALUE
: facultatifs. Carte de 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
etANNOTATION_VALUE
: facultatifs. Carte de paires clé/valeur d'annotations au format texte libre. Vous pouvez les utiliser pour joindre des informations arbitraires associées à la ressource. Pour en savoir plus, consultez Annotations.DESTINATION
: identifiant complet du bus Eventarc Advanced auquel les événements sources Google doivent être publiés au formatprojects/PROJECT_NAME/locations/LOCATION/messageBuses/BUS_NAME
. Pour en savoir plus, consultez Créer un bus pour acheminer les messages.ENCRYPT_KEY
(facultatif) : Clé Cloud KMS que la ressourceGoogleApiSource
doit utiliser pour le chiffrement des données au formatprojects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
. Pour en savoir plus, consultez Utiliser des clés de chiffrement gérées par le client.PROJECT_ID
: ID du projet Google Clouddans lequel créer la ressourceGoogleApiSource
.LOCATION
: région compatible dans laquelle créer la ressourceGoogleApiSource
(par exemple,us-central1
).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
ouEMERGENCY
. La valeur par défaut estNONE
. Pour en savoir plus, consultezLogSeverity
.
Corps JSON de la requête :
{ "displayName": "GOOGLE_API_SOURCE_NAME", "labels": {"LABEL_KEY":"LABEL_VALUE"}, "annotations": {"ANNOTATION_KEY":"ANNOTATION_VALUE"}, "destination": "DESTINATION", "cryptoKeyName": "ENCRYPT_KEY", "loggingConfig": {"logSeverity":"LOG_SEVERITY"} }
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/googleApiSources/GOOGLE_API_SOURCE_NAME", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
Les événements provenant de sources Google dans le même projet Google Cloud que la ressourceGoogleApiSource
sont désormais collectés et publiés dans le bus.
Désactiver les événements provenant de sources Google
Pour désactiver la publication d'événements provenant de sources Google dans un projetGoogle Cloud spécifique sur un bus Eventarc Advanced, vous devez supprimer la ressource GoogleApiSource
.
Vous pouvez désactiver la publication d'événements provenant de sources Google 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 > Détails du bus.
Cliquez sur
Modifier.Sur la page Modifier le bus, pour supprimer le fournisseur de messages de l'API Google, cliquez sur
Supprimer la ressource pour la source de messages google-api-source (ou le nom que vous lui avez donné).Dans l'invite Supprimer la ressource, cliquez sur Confirmer.
Cliquez sur Enregistrer.
gcloud
Ouvrez un terminal.
Vous pouvez désactiver les événements provenant de sources Google à l'aide de la commande
gcloud eventarc google-api-sources delete
:gcloud eventarc google-api-sources delete GOOGLE_API_SOURCE_NAME \ --location=REGION
Remplacez les éléments suivants :
GOOGLE_API_SOURCE_NAME
: ID ou identifiant complet de la ressourceGoogleApiSource
REGION
: emplacement de la ressourceGoogleApiSource
API REST
Pour désactiver les événements provenant de sources Google, utilisez la méthode projects.locations.googleApiSources.delete
.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
PROJECT_ID
: ID du Google Cloud projet dans lequel la ressourceGoogleApiSource
est créée.LOCATION
: région dans laquelle la ressourceGoogleApiSource
est créée, par exempleus-central1
.GOOGLE_API_SOURCE_NAME
: nom de la ressourceGoogleApiSource
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 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/googleApiSources/GOOGLE_API_SOURCE_NAME", "verb": "delete", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
Les événements provenant de sources Google dans le même projet Google Cloud que la ressource GoogleApiSource
supprimée ne sont plus collectés ni publiés.
Publier des événements à partir de plusieurs projets
Pour collecter et publier des événements sources Google provenant de plusieurs projets Google Cloud , vous devez créer une ressource GoogleApiSource
. Les projets doivent appartenir à la même organisation que la ressource GoogleApiSource
. Pour en savoir plus sur les organisations, consultez la section Hiérarchie des ressources.
Veuillez noter les points suivants :
- La publication d'événements à partir de plusieurs projets doit être configurée à l'aide de gcloud CLI et ne s'affiche pas dans la console Google Cloud .
- Si le projet contenant la ressource
GoogleApiSource
est déplacé vers une autre organisation, la publication d'événements à partir de plusieurs projets ne fonctionnera plus comme prévu. Vous devez mettre à jour ou recréer la ressourceGoogleApiSource
.
1. Attribuer le rôle IAM approprié à l'agent de service Eventarc
Pour collecter des événements au niveau de l'organisation, utilisez la commande gcloud organizations add-iam-policy-binding
pour accorder au compte de service Eventarc le rôle IAM (Identity and Access Management) approprié :
gcloud organizations add-iam-policy-binding ORGANIZATION_ID \ --member="SERVICE_AGENT_EMAIL" \ --role="roles/eventarc.multiProjectEventCollector"
Remplacez les éléments suivants :
ORGANIZATION_ID
: ID de ressource de votre organisation.SERVICE_AGENT_EMAIL
: adresse e-mail de l'agent de service principal Eventarc dans le projet dans lequel vous créez la ressourceGoogleApiSource
. L'adresse e-mail est au format suivant :service-PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com
Remplacez
PROJECT_NUMBER
par le numéro de votre projetGoogle Cloud . 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)'
2. Publier à partir de tous les projets ou d'une liste de projets
Pour publier des événements provenant de sources Google dans plusieurs projets, utilisez la commande gcloud eventarc google-api-sources create
de l'une des manières suivantes :
Publier à partir de tous les projets Google Cloud de la même organisation que la ressource
GoogleApiSource
:gcloud eventarc google-api-sources create GOOGLE_API_SOURCE_NAME \ --location=REGION \ --destination-message-bus=BUS_NAME \ --destination-message-bus-project=BUS_PROJECT_ID \ --organization-subscription
Publiez à partir d'une liste de projets dans la même organisation que la ressource
GoogleApiSource
: Google Cloudgcloud eventarc google-api-sources create GOOGLE_API_SOURCE_NAME \ --location=REGION \ --destination-message-bus=BUS_NAME \ --destination-message-bus-project=BUS_PROJECT_ID \ --project-subscriptions=LIST_OF_PROJECTS
Remplacez les éléments suivants :
GOOGLE_API_SOURCE_NAME
: ID ou identifiant complet de la ressourceGoogleApiSource
REGION
: emplacement de la ressourceGoogleApiSource
BUS_NAME
: ID ou identifiant complet du bus auquel vous souhaitez vous abonner pour recevoir les événements de l'API Google.BUS_PROJECT_ID
: ID du projet Google Cloud pour le busLIST_OF_PROJECTS
: liste d'Google Cloud ID ou numéros de projet séparés par une virgule. Vous pouvez combiner des ID et des nombres dans la même liste. Pour publier des événements à partir du projetGoogle Cloud contenant la ressourceGoogleApiSource
, vous devez inclure explicitement l'ID ou le numéro du projet dans la liste.
Étapes suivantes
- Démarrage rapide : publier des événements à partir d'une source Google
- Publier des événements directement
- Mettre en forme les événements reçus
- Transformer les événements reçus