1. Introduction

Eventarc permet de connecter facilement différents services (Cloud Run, Kubernetes, Workflows) à des événements provenant de diverses sources. Il vous permet de créer des architectures basées sur des événements dans lesquelles les microservices sont faiblement couplés et distribués. Il gère également l'ingestion, la diffusion, la sécurité, l'autorisation et le traitement des erreurs pour vous, ce qui améliore l'agilité des développeurs et la résilience des applications. Consultez l'atelier de programmation Déclencher Cloud Run avec des événements provenant d'Eventarc pour découvrir Eventarc.
Dans cet atelier de programmation, vous allez utiliser Eventarc pour lire des événements à partir de Pub/Sub, Cloud Storage et Cloud Audit Logs, et les transmettre à un service Kubernetes s'exécutant sur Google Kubernetes Engine (GKE).
Points abordés
- créer un cluster GKE ;
- Créez un service GKE en tant que récepteur d'événements.
- Créez un déclencheur Pub/Sub.
- Créer un déclencheur Cloud Storage
- Créez un déclencheur Cloud Audit Logs.
2. Préparation
Configuration de l'environnement au rythme de chacun
- Connectez-vous à la console Google Cloud, puis créez un projet ou réutilisez un projet existant. (Si vous ne possédez pas encore de compte Gmail ou Google Workspace, vous devez en créer un.)



- Le nom du projet est le nom à afficher pour les participants au projet. Il s'agit d'une chaîne de caractères non utilisée par les API Google. Vous pouvez le modifier à tout moment.
- L'ID du projet est unique parmi tous les projets Google Cloud et non modifiable une fois défini. La console Cloud génère automatiquement une chaîne unique (en général, vous n'y accordez d'importance particulière). Dans la plupart des ateliers de programmation, vous devrez indiquer l'ID du projet (généralement identifié par
PROJECT_ID). Si l'ID généré ne vous convient pas, vous pouvez en générer un autre de manière aléatoire. Vous pouvez également en spécifier un et voir s'il est disponible. Après cette étape, l'ID n'est plus modifiable et restera donc le même pour toute la durée du projet. - Pour information, il existe une troisième valeur (le numéro de projet) que certaines API utilisent. Pour en savoir plus sur ces trois valeurs, consultez la documentation.
- Vous devez ensuite activer la facturation dans la console Cloud pour utiliser les ressources/API Cloud. L'exécution de cet atelier de programmation est très peu coûteuse, voire sans frais. Pour désactiver les ressources et éviter ainsi que des frais ne vous soient facturés après ce tutoriel, vous pouvez supprimer le projet ou les ressources que vous avez créées. Les nouveaux utilisateurs de Google Cloud peuvent participer au programme d'essai sans frais pour bénéficier d'un crédit de 300$.
Démarrer Cloud Shell
Bien que Google Cloud puisse être utilisé à distance depuis votre ordinateur portable, nous allons nous servir de Google Cloud Shell pour cet atelier de programmation, un environnement de ligne de commande exécuté dans le cloud.
Dans la console Google Cloud, cliquez sur l'icône Cloud Shell dans la barre d'outils supérieure :

Le provisionnement et la connexion à l'environnement prennent quelques instants seulement. Une fois l'opération terminée, le résultat devrait ressembler à ceci :

Cette machine virtuelle contient tous les outils de développement nécessaires. Elle comprend un répertoire d'accueil persistant de 5 Go et s'exécute sur Google Cloud, ce qui améliore nettement les performances du réseau et l'authentification. Vous pouvez effectuer toutes les tâches de cet atelier de programmation dans un navigateur. Vous n'avez rien à installer.
Avant de commencer
Dans Cloud Shell, assurez-vous que l'ID de votre projet est configuré :
PROJECT_ID=your-project-id gcloud config set project $PROJECT_ID
3. Créer un cluster GKE
Tout d'abord, activez les services requis pour GKE :
gcloud services enable container.googleapis.com
Créez un cluster GKE Autopilot :
CLUSTER_NAME=eventarc-cluster REGION=us-central1 gcloud container clusters create-auto $CLUSTER_NAME --region $REGION
Assurez-vous que le cluster a bien été créé avant de passer à l'étape suivante.
4. Déployer un service GKE
Avant de déployer un service, obtenez des identifiants d'authentification pour interagir avec le cluster à l'aide de kubectl :
gcloud container clusters get-credentials $CLUSTER_NAME \
--region $REGION
Ensuite, déployez le conteneur "hello" de Cloud Run en tant que déploiement Kubernetes sur GKE. Ce service consigne les requêtes HTTP et les CloudEvents reçus :
SERVICE_NAME=hello-gke
kubectl create deployment $SERVICE_NAME \
--image=gcr.io/cloudrun/hello
Exposez le déploiement en tant que service Kubernetes interne. Cela crée un service avec une adresse IP stable accessible dans le cluster :
kubectl expose deployment $SERVICE_NAME \ --type ClusterIP --port 80 --target-port 8080
Avant de passer à l'étape suivante, assurez-vous que le pod est en cours d'exécution :
kubectl get pods NAME READY STATUS hello-gke-df6469d4b-5vv22 1/1 Running
Vous pouvez également voir le service :
kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP hello-gke LoadBalancer 10.51.1.26 <none>
5. Configurer Eventarc
Au cours de cette étape, vous allez configurer Eventarc et initialiser les destinations Eventarc GKE.
Tout d'abord, activez les services requis pour Eventarc et les destinations GKE Eventarc :
gcloud services enable eventarc.googleapis.com \ cloudresourcemanager.googleapis.com
Ensuite, autorisez Eventarc à gérer les clusters GKE :
gcloud eventarc gke-destinations init
Eventarc crée un pod de redirecteur d'événement distinct pour chaque déclencheur ciblant un service GKE et nécessite des autorisations explicites pour apporter des modifications au cluster. Pour ce faire, accordez des autorisations à un compte de service spécial pour gérer les ressources du cluster. Cette opération doit être effectuée une fois par projet Google Cloud.
6. Découverte d'événements
Avant de créer des déclencheurs, vous pouvez découvrir les sources d'événements, les types d'événements qu'elles peuvent émettre et comment configurer les déclencheurs pour les utiliser.
Vous pouvez consulter la page de documentation sur les événements compatibles avec Eventarc.Vous pouvez également explorer les événements à l'aide de gcloud.
Pour afficher la liste des différents types d'événements :
gcloud beta eventarc attributes types list NAME DESCRIPTION google.cloud.audit.log.v1.written Cloud Audit Log written google.cloud.pubsub.topic.v1.messagePublished Cloud Pub/Sub message published google.cloud.storage.object.v1.archived Cloud Storage: Sent when a live version of an (object versioned) object is archived or deleted. google.cloud.storage.object.v1.deleted Cloud Storage: Sent when an object has been permanently deleted. google.cloud.storage.object.v1.finalized Cloud Storage: Sent when a new object (or a new generation of an existing object). google.cloud.storage.object.v1.metadataUpdated Cloud Storage: Sent when the metadata of an existing object changes.
Pour en savoir plus sur chaque type d'événement :
gcloud beta eventarc attributes types describe google.cloud.audit.log.v1.written attributes: type,serviceName,methodName,resourceName description: 'Cloud Audit Log: Sent when a log is written.' name: google.cloud.audit.log.v1.written
Pour afficher la liste des services qui émettent un certain type d'événement :
gcloud beta eventarc attributes service-names list --type=google.cloud.audit.log.v1.written SERVICE_NAME DISPLAY_NAME accessapproval.googleapis.com Access Approval accesscontextmanager.googleapis.com Access Context Manager admin.googleapis.com Google Workspace Admin aiplatform.googleapis.com AI Platform (under Vertex AI) apigee.googleapis.com Apigee apigeeconnect.googleapis.com Apigee Connect ... workflows.googleapis.com Workflows
Pour afficher la liste des noms de méthodes (sous-événements) que chaque service peut émettre :
gcloud beta eventarc attributes method-names list --type=google.cloud.audit.log.v1.written --service-name=workflows.googleapis.com METHOD_NAME google.cloud.workflows.v1.Workflows.CreateWorkflow google.cloud.workflows.v1.Workflows.DeleteWorkflow google.cloud.workflows.v1.Workflows.GetWorkflow google.cloud.workflows.v1.Workflows.ListWorkflows google.cloud.workflows.v1.Workflows.UpdateWorkflow google.cloud.workflows.v1beta.Workflows.CreateWorkflow google.cloud.workflows.v1beta.Workflows.DeleteWorkflow google.cloud.workflows.v1beta.Workflows.GetWorkflow google.cloud.workflows.v1beta.Workflows.ListWorkflows google.cloud.workflows.v1beta.Workflows.UpdateWorkflow
7. Créer un déclencheur Pub/Sub
Pour recevoir des événements, l'un des moyens possibles consiste à passer par Pub/Sub. Toute application peut publier des messages dans Pub/Sub, et ces messages peuvent être transmis aux services via Eventarc.
Configuration
Avant de créer des déclencheurs, vous avez besoin d'un compte de service à utiliser par les déclencheurs.
Créez un compte de service :
SERVICE_ACCOUNT=eventarc-gke-trigger-sa gcloud iam service-accounts create $SERVICE_ACCOUNT
Les rôles suivants doivent être attribués au compte de service pour les déclencheurs avec des destinations GKE :
roles/pubsub.subscriberroles/monitoring.metricWriterroles/eventarc.eventReceiver(uniquement pour les déclencheurs AuditLog). Nous l'ajouterons à l'étape suivante.)
Attribuez les rôles :
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member serviceAccount:$SERVICE_ACCOUNT@$PROJECT_ID.iam.gserviceaccount.com \ --role roles/pubsub.subscriber gcloud projects add-iam-policy-binding $PROJECT_ID \ --member serviceAccount:$SERVICE_ACCOUNT@$PROJECT_ID.iam.gserviceaccount.com \ --role roles/monitoring.metricWriter
Créer
Créez un déclencheur pour acheminer les messages Pub/Sub vers votre service :
TRIGGER_NAME=trigger-pubsub-gke gcloud eventarc triggers create $TRIGGER_NAME \ --destination-gke-cluster=$CLUSTER_NAME \ --destination-gke-location=$REGION \ --destination-gke-namespace=default \ --destination-gke-service=$SERVICE_NAME \ --destination-gke-path=/ \ --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \ --location=$REGION \ --service-account=$SERVICE_ACCOUNT@$PROJECT_ID.iam.gserviceaccount.com
Tester
Vous pouvez vérifier que le déclencheur a été créé en listant tous les déclencheurs :
gcloud eventarc triggers list
Le déclencheur Pub/Sub crée un sujet Pub/Sub en arrière-plan. Découvrons-le et attribuons-le à une variable :
TOPIC_ID=$(gcloud eventarc triggers describe $TRIGGER_NAME --location $REGION --format='value(transport.pubsub.topic)')
Utilisez gcloud pour publier un message dans le sujet :
gcloud pubsub topics publish $TOPIC_ID --message="Hello World"
Pour vérifier si l'événement a été reçu, commencez par trouver le nom du pod :
kubectl get pods NAME READY STATUS hello-gke-df6469d4b-5vv22 1/1 Running
Stockez-le dans une variable :
POD_NAME=hello-gke-df6469d4b-5vv22
Consultez les journaux du pod pour vérifier l'événement reçu :
kubectl logs $POD_NAME
{
"severity": "INFO",
"eventType": "google.cloud.pubsub.topic.v1.messagePublished",
"message": "Received event of type google.cloud.pubsub.topic.v1.messagePublished. Event data: Hello World",
"event": {
"data": {
"subscription": "projects/atamel-eventarc-gke/subscriptions/eventarc-us-central1-trigger-pubsub-gke-sub-270",
"message": {
"data": "SGVsbG8gV29ybGQ=",
"messageId": "6031025573654834",
"publishTime": "2022-10-19T14:13:07.990Z"
}
},
"datacontenttype": "application/json",
"id": "6031025573654834",
"source": "//pubsub.googleapis.com/projects/atamel-eventarc-gke/topics/eventarc-us-central1-trigger-pubsub-gke-729",
"specversion": "1.0",
"time": "2022-10-19T14:13:07.99Z",
"type": "google.cloud.pubsub.topic.v1.messagePublished"
}
}
8. Créer un déclencheur Cloud Storage
Pour recevoir des événements, vous pouvez également passer par Cloud Storage. Par exemple, une application peut importer un fichier dans un bucket, et cet événement peut être transmis aux services via Eventarc.
Configuration
Avant de créer un déclencheur Cloud Storage, créez un bucket pour recevoir les événements :
BUCKET_NAME=eventarc-gcs-$PROJECT_ID gcloud storage buckets update gs://$BUCKET_NAME --location=$REGION
Vous devez également ajouter le rôle pubsub.publisher au compte de service Cloud Storage pour les déclencheurs Cloud Storage :
SERVICE_ACCOUNT_STORAGE=$(gcloud storage service-agent --project=$PROJECT_ID)
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member serviceAccount:$SERVICE_ACCOUNT_STORAGE \
--role roles/pubsub.publisher
Créer
Créez un déclencheur pour acheminer les événements de création de fichiers du bucket vers votre service :
TRIGGER_NAME=trigger-storage-gke gcloud eventarc triggers create $TRIGGER_NAME \ --destination-gke-cluster=$CLUSTER_NAME \ --destination-gke-location=$REGION \ --destination-gke-namespace=default \ --destination-gke-service=$SERVICE_NAME \ --destination-gke-path=/ \ --event-filters="type=google.cloud.storage.object.v1.finalized" \ --event-filters="bucket=$BUCKET_NAME" \ --location=$REGION \ --service-account=$SERVICE_ACCOUNT@$PROJECT_ID.iam.gserviceaccount.com
Tester
Vous pouvez vérifier que le déclencheur a été créé en listant tous les déclencheurs :
gcloud eventarc triggers list
Créez un fichier et utilisez gcloud storage pour l'importer dans le bucket :
echo "Hello World" > random.txt gcloud storage cp random.txt gs://$BUCKET_NAME/random.txt
Consultez les journaux du pod pour vérifier l'événement reçu :
kubectl logs $POD_NAME
{
"severity": "INFO",
"eventType": "google.cloud.storage.object.v1.finalized",
"message": "Received event of type google.cloud.storage.object.v1.finalized. Event data: {\n \"kind\": \"storage#object\",\n \"id\": \"eventarc-gcs-atamel-eventarc-gke/random.txt/1666190425669022\",\n \"selfLink\": \"https://www.googleapis.com/storage/v1/b/eventarc-gcs-atamel-eventarc-gke/o/random.txt\",\n \"name\": \"random.txt\",\n \"bucket\": \"eventarc-gcs-atamel-eventarc-gke\",\n \"generation\": \"1666190425669022\",\n \"metageneration\": \"1\",\n \"contentType\": \"text/plain\",\n \"timeCreated\": \"2022-10-19T14:40:25.678Z\",\n \"updated\": \"2022-10-19T14:40:25.678Z\",\n \"storageClass\": \"STANDARD\",\n \"timeStorageClassUpdated\": \"2022-10-19T14:40:25.678Z\",\n \"size\": \"12\",\n \"md5Hash\": \"5Z/5eUEET4XfUpfhwwLSYA==\",\n \"mediaLink\": \"https://storage.googleapis.com/download/storage/v1/b/eventarc-gcs-atamel-eventarc-gke/o/random.txt?generation=1666190425669022\u0026alt=media\",\n \"contentLanguage\": \"en\",\n \"crc32c\": \"R1jUOQ==\",\n \"etag\": \"CJ77zIPD7PoCEAE=\"\n}\n",
"event": {
"bucket": "eventarc-gcs-atamel-eventarc-gke",
"data": {
"kind": "storage#object",
"id": "eventarc-gcs-atamel-eventarc-gke/random.txt/1666190425669022",
"selfLink": "https://www.googleapis.com/storage/v1/b/eventarc-gcs-atamel-eventarc-gke/o/random.txt",
"name": "random.txt",
"bucket": "eventarc-gcs-atamel-eventarc-gke",
"generation": "1666190425669022",
"metageneration": "1",
"contentType": "text/plain",
"timeCreated": "2022-10-19T14:40:25.678Z",
"updated": "2022-10-19T14:40:25.678Z",
"storageClass": "STANDARD",
"timeStorageClassUpdated": "2022-10-19T14:40:25.678Z",
"size": "12",
"md5Hash": "5Z/5eUEET4XfUpfhwwLSYA==",
"mediaLink": "https://storage.googleapis.com/download/storage/v1/b/eventarc-gcs-atamel-eventarc-gke/o/random.txt?generation=1666190425669022\u0026alt=media",
"contentLanguage": "en",
"crc32c": "R1jUOQ==",
"etag": "CJ77zIPD7PoCEAE="
},
"datacontenttype": "application/json",
"id": "6031255652220627",
"source": "//storage.googleapis.com/projects/_/buckets/eventarc-gcs-atamel-eventarc-gke",
"specversion": "1.0",
"subject": "objects/random.txt",
"time": "2022-10-19T14:40:25.678152Z",
"type": "google.cloud.storage.object.v1.finalized"
}
}
9. Créer un déclencheur Cloud Audit Logs
Bien que le déclencheur Cloud Storage soit la meilleure façon d'écouter les événements Cloud Storage, vous allez créer un déclencheur Cloud Audit Logs pour faire de même.
Configuration
Pour recevoir des événements d'un service, vous devez activer les journaux d'audit. Dans la console Google Cloud, sélectionnez IAM & Admin et Audit Logs dans le menu en haut à gauche. Dans la liste des services, cochez Google Cloud Storage :

Sur la droite, assurez-vous que Admin, Read et Write sont sélectionnés, puis cliquez sur Save :

Vous devez également ajouter le rôle eventarc.eventReceiver au compte de service du déclencheur pour les déclencheurs Journaux d'audit Cloud :
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member serviceAccount:$SERVICE_ACCOUNT@$PROJECT_ID.iam.gserviceaccount.com \ --role roles/eventarc.eventReceiver
Créer
Créez un déclencheur pour acheminer les événements de création de fichiers du bucket vers votre service :
TRIGGER_NAME=trigger-auditlog-storage-gke gcloud eventarc triggers create $TRIGGER_NAME \ --destination-gke-cluster=$CLUSTER_NAME \ --destination-gke-location=$REGION \ --destination-gke-namespace=default \ --destination-gke-service=$SERVICE_NAME \ --destination-gke-path=/ \ --event-filters="type=google.cloud.audit.log.v1.written" \ --event-filters="serviceName=storage.googleapis.com" \ --event-filters="methodName=storage.objects.create" \ --event-filters-path-pattern="resourceName=/projects/_/buckets/$BUCKET_NAME/objects/*" \ --location=$REGION \ --service-account=$SERVICE_ACCOUNT@$PROJECT_ID.iam.gserviceaccount.com
Tester
L'initialisation des déclencheurs de journaux d'audit prend un peu de temps. Vous pouvez vérifier que le déclencheur a été créé en listant tous les déclencheurs :
gcloud eventarc triggers list
Vous devriez voir que le champ Active est défini sur Yes :
NAME TYPE DESTINATION ACTIVE trigger-auditlog-storage-gke google.cloud.audit.log.v1.written GKE: hello-gke Yes
Créez un fichier et utilisez gcloud storage pour l'importer dans le bucket :
echo "Hello World" > random.txt gcloud storage cp random.txt gs://$BUCKET_NAME/random.txt
Consultez les journaux du pod pour vérifier l'événement reçu :
kubectl logs $POD_NAME
{
"severity": "INFO",
"eventType": "google.cloud.audit.log.v1.written",
"message": "Received event of type google.cloud.audit.log.v1.written. Event data: {\"protoPayload\":{\"status\":{},\"authenticationInfo\":{\"principalEmail\":\"atameldev@gmail.com\"},\"requestMetadata\":{\"callerIp\":\"149.71.143.227\",\"callerSuppliedUserAgent\":\"apitools Python/3.10.4 gsutil/5.14 (darwin) analytics/disabled interactive/True command/cp google-cloud-sdk/405.0.1,gzip(gfe)\",\"requestAttributes\":{\"time\":\"2022-10-19T15:05:54.144615670Z\",\"auth\":{}},\"destinationAttributes\":{}},\"serviceName\":\"storage.googleapis.com\",\"methodName\":\"storage.objects.create\",\"authorizationInfo\":[{\"resource\":\"projects/_/buckets/eventarc-gcs-atamel-eventarc-gke/objects/random.txt\",\"permission\":\"storage.objects.delete\",\"granted\":true,\"resourceAttributes\":{}},{\"resource\":\"projects/_/buckets/eventarc-gcs-atamel-eventarc-gke/objects/random.txt\",\"permission\":\"storage.objects.create\",\"granted\":true,\"resourceAttributes\":{}}],\"resourceName\":\"projects/_/buckets/eventarc-gcs-atamel-eventarc-gke/objects/random.txt\",\"serviceData\":{\"@type\":\"type.googleapis.com/google.iam.v1.logging.AuditData\",\"policyDelta\":{\"bindingDeltas\":[{\"action\":\"ADD\",\"role\":\"roles/storage.legacyObjectOwner\",\"member\":\"projectOwner:atamel-eventarc-gke\"},{\"action\":\"ADD\",\"role\":\"roles/storage.legacyObjectOwner\",\"member\":\"projectEditor:atamel-eventarc-gke\"},{\"action\":\"ADD\",\"role\":\"roles/storage.legacyObjectOwner\",\"member\":\"user:atameldev@gmail.com\"},{\"action\":\"ADD\",\"role\":\"roles/storage.legacyObjectReader\",\"member\":\"projectViewer:atamel-eventarc-gke\"}]}},\"resourceLocation\":{\"currentLocations\":[\"us-central1\"]}},\"insertId\":\"-8vmrbve7pol2\",\"resource\":{\"type\":\"gcs_bucket\",\"labels\":{\"project_id\":\"atamel-eventarc-gke\",\"bucket_name\":\"eventarc-gcs-atamel-eventarc-gke\",\"location\":\"us-central1\"}},\"timestamp\":\"2022-10-19T15:05:54.138732321Z\",\"severity\":\"INFO\",\"logName\":\"projects/atamel-eventarc-gke/logs/cloudaudit.googleapis.com%2Fdata_access\",\"receiveTimestamp\":\"2022-10-19T15:05:54.839604461Z\"}",
"event": {
"data": {
"protoPayload": {
"status": {
},
"authenticationInfo": {
"principalEmail": "atameldev@gmail.com"
},
"requestMetadata": {
"callerIp": "149.71.143.227",
"callerSuppliedUserAgent": "apitools Python/3.10.4 gsutil/5.14 (darwin) analytics/disabled interactive/True command/cp google-cloud-sdk/405.0.1,gzip(gfe)",
"requestAttributes": {
"time": "2022-10-19T15:05:54.144615670Z",
"auth": {
}
},
"destinationAttributes": {
}
},
"serviceName": "storage.googleapis.com",
"methodName": "storage.objects.create",
"authorizationInfo": [
{
"resource": "projects/_/buckets/eventarc-gcs-atamel-eventarc-gke/objects/random.txt",
"permission": "storage.objects.delete",
"granted": true,
"resourceAttributes": {
}
},
{
"resource": "projects/_/buckets/eventarc-gcs-atamel-eventarc-gke/objects/random.txt",
"permission": "storage.objects.create",
"granted": true,
"resourceAttributes": {
}
}
],
"resourceName": "projects/_/buckets/eventarc-gcs-atamel-eventarc-gke/objects/random.txt",
"serviceData": {
"@type": "type.googleapis.com/google.iam.v1.logging.AuditData",
"policyDelta": {
"bindingDeltas": [
{
"action": "ADD",
"role": "roles/storage.legacyObjectOwner",
"member": "projectOwner:atamel-eventarc-gke"
},
{
"action": "ADD",
"role": "roles/storage.legacyObjectOwner",
"member": "projectEditor:atamel-eventarc-gke"
},
{
"action": "ADD",
"role": "roles/storage.legacyObjectOwner",
"member": "user:atameldev@gmail.com"
},
{
"action": "ADD",
"role": "roles/storage.legacyObjectReader",
"member": "projectViewer:atamel-eventarc-gke"
}
]
}
},
"resourceLocation": {
"currentLocations": [
"us-central1"
]
}
},
"insertId": "-8vmrbve7pol2",
"resource": {
"type": "gcs_bucket",
"labels": {
"project_id": "atamel-eventarc-gke",
"bucket_name": "eventarc-gcs-atamel-eventarc-gke",
"location": "us-central1"
}
},
"timestamp": "2022-10-19T15:05:54.138732321Z",
"severity": "INFO",
"logName": "projects/atamel-eventarc-gke/logs/cloudaudit.googleapis.com%2Fdata_access",
"receiveTimestamp": "2022-10-19T15:05:54.839604461Z"
},
"datacontenttype": "application/json; charset=utf-8",
"dataschema": "https://googleapis.github.io/google-cloudevents/jsonschema/google/events/cloud/audit/v1/LogEntryData.json",
"id": "projects/atamel-eventarc-gke/logs/cloudaudit.googleapis.com%2Fdata_access-8vmrbve7pol21666191954138732",
"methodname": "storage.objects.create",
"recordedtime": "2022-10-19T15:05:54.138732321Z",
"resourcename": "projects/_/buckets/eventarc-gcs-atamel-eventarc-gke/objects/random.txt",
"servicename": "storage.googleapis.com",
"source": "//cloudaudit.googleapis.com/projects/atamel-eventarc-gke/logs/data_access",
"specversion": "1.0",
"subject": "storage.googleapis.com/projects/_/buckets/eventarc-gcs-atamel-eventarc-gke/objects/random.txt",
"time": "2022-10-19T15:05:54.839604461Z",
"type": "google.cloud.audit.log.v1.written"
}
}
10. Félicitations !
Bravo ! Vous avez terminé cet atelier de programmation.
Points abordés
- créer un cluster GKE ;
- Créez un service GKE en tant que récepteur d'événements.
- Créez un déclencheur Pub/Sub.
- Créez un déclencheur Cloud Storage.
- Créez un déclencheur Cloud Audit Logs.