Ce tutoriel explique comment déployer un service Cloud Run authentifié qui reçoit des événements de Cloud Storage à l'aide de Cloud Audit Logs. Utilisez ce tutoriel pour déployer des charges de travail de production. Le déclencheur Eventarc filtre les événements en fonction des entrées Cloud Audit Logs. Pour plus d'informations, consultez la section Déterminer des filtres d'événements pour Cloud Audit Logs.
Vous pouvez suivre ce tutoriel à l'aide de la console Google Cloud ou de la Google Cloud CLI.
Créer un dépôt standard Artifact Registry
Créez un dépôt standard Artifact Registry pour stocker votre image de conteneur :Console
- Dans la console Google Cloud , accédez à la page Dépôts.
- Cliquez sur Créer un dépôt.
- Configurez votre dépôt :
- Saisissez un nom unique.
- Dans le champ Format, choisissez Docker.
- Dans le champ Mode, choisissez Standard.
- Dans le champ Type d'emplacement, sélectionnez Région.
- Dans la liste Région, sélectionnez us-central1 (Iowa).
- Acceptez les autres paramètres par défaut et cliquez sur Créer.
gcloud
gcloud artifacts repositories create REPOSITORY \ --repository-format=docker \ --location=$REGION
Remplacez REPOSITORY
par un nom unique pour le dépôt Artifact Registry.
Créer un bucket Cloud Storage
Ce guide de démarrage rapide utilise Cloud Storage comme source d'événements. Pour créer un bucket de stockage, procédez comme suit :
Console
- Dans la console Google Cloud , accédez à la page Buckets.
- Cliquez sur Créer un bucket.
- Saisissez les informations relatives à votre bucket et cliquez sur Continuer à chaque étape :
- Saisissez un nom unique. Exemple :
eventarcbucket
- Sélectionnez Région comme Type d'emplacement.
- Sélectionnez us-central1 (Iowa) comme Emplacement.
- Sélectionnez Standard comme classe de stockage par défaut.
- Sélectionnez Uniforme comme type de Contrôle des accès.
- Saisissez un nom unique. Exemple :
- Cliquez sur Créer.
gcloud
gcloud storage buckets create gs://events-tutorial-PROJECT_ID/ --location=$REGION
Une fois la source d'événements créée, vous pouvez déployer le service récepteur d'événements sur Cloud Run.
Déployer le service récepteur d'événements sur Cloud Run
Déployez un service Cloud Run qui reçoit et consigne les événements. Pour déployer l'exemple de service récepteur d'événements, procédez comme suit :
Console
- Clonez l'exemple de dépôt dans votre compte GitHub :
- Sur GitHub, accédez à GoogleCloudPlatform/golang-samples.
- Cliquez sur Fork (Dupliquer).
- Si vous y êtes invité, sélectionnez l'emplacement où vous souhaitez dupliquer le dépôt.
- Sur GitHub, accédez à GoogleCloudPlatform/java-docs-samples.
- Cliquez sur Fork (Dupliquer).
- Si vous y êtes invité, sélectionnez l'emplacement où vous souhaitez dupliquer le dépôt.
- Sur GitHub, accédez à GoogleCloudPlatform/dotnet-docs-samples.
- Cliquez sur Fork (Dupliquer).
- Si vous y êtes invité, sélectionnez l'emplacement où vous souhaitez dupliquer le dépôt.
- Sur GitHub, accédez à GoogleCloudPlatform/nodejs-docs-samples.
- Cliquez sur Fork (Dupliquer).
- Si vous y êtes invité, sélectionnez l'emplacement où vous souhaitez dupliquer le dépôt.
- Sur GitHub, accédez à GoogleCloudPlatform/python-docs-samples.
- Cliquez sur Fork (Dupliquer).
- Si vous y êtes invité, sélectionnez l'emplacement où vous souhaitez dupliquer le dépôt.
- Dans la console Google Cloud , accédez à la page Services.
- Cliquez sur Create service (Créer un service) pour afficher le formulaire Create service.
- Sélectionnez Déployer en continu depuis un dépôt.
Les modifications apportées à votre dépôt GitHub sont automatiquement intégrées aux images de conteneurs dans Artifact Registry et déployées vers Cloud Run.
- Cliquez sur Configurer avec Cloud Build pour ouvrir le formulaire Configurer avec Cloud Build.
- Si vous y êtes invité, activez l'API Cloud Build et l'API Artifact Analysis.
- Sélectionnez GitHub comme fournisseur de dépôt.
- Si vous y êtes invité, cliquez sur Installer Google Cloud Build.
- Sélectionnez le dépôt GitHub que vous avez dupliqué en guise de Dépôt.
- Cliquez sur Suivant.
- Dans le champ Branche, saisissez
^main$
. - Sélectionnez Dockerfile dans le champ Type de compilation, puis indiquez l'emplacement source du Dockerfile :
eventarc/audit-storage/Dockerfile
ou
eventarc/audit_storage/Dockerfile
(Go)
- Cliquez sur Enregistrer.
- Dans le formulaire Créer un service, saisissez un nom de service.
Par exemple,
helloworld-events
. - Sélectionnez us-central1(Iowa) comme région dans laquelle vous souhaitez placer votre service.
- Sélectionnez l'une des options Entrée en fonction du trafic entrant que vous souhaitez autoriser dans le service Cloud Run.
- Sélectionnez Exiger l'authentification.
- Cliquez sur Créer.
Go

Java

.NET

Node.js

Python

gcloud
- Clonez le dépôt GitHub :
Go
git clone https://github.com/GoogleCloudPlatform/golang-samples.git cd golang-samples/eventarc/audit_storage
Java
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git cd java-docs-samples/eventarc/audit-storage
.NET
git clone https://github.com/GoogleCloudPlatform/dotnet-docs-samples.git cd dotnet-docs-samples/eventarc/audit-storage
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git cd nodejs-docs-samples/eventarc/audit-storage
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git cd python-docs-samples/eventarc/audit-storage
- Créez le conteneur et importez-le dans Cloud Build :
gcloud builds submit --tag $REGION-docker.pkg.dev/PROJECT_ID/REPOSITORY/$SERVICE_NAME:v1
- Déployez l'image de conteneur dans Cloud Run :
gcloud run deploy $SERVICE_NAME \ --image $REGION-docker.pkg.dev/PROJECT_ID/REPOSITORY/$SERVICE_NAME:v1
Lorsque vous êtes invité à autoriser les appels non authentifiés, saisissez
n
.Une fois le déploiement effectué, la ligne de commande affiche l'URL du service.
Maintenant que vous avez déployé votre service récepteur d'événements appelé helloworld-events
sur Cloud Run, vous pouvez configurer votre déclencheur.
Créer un déclencheur Eventarc
Le déclencheur Eventarc envoie des événements à partir du bucket Cloud Storage vers le service Cloud Run helloworld-events
.
Console
- Dans la console Google Cloud , accédez à la page Déclencheurs.
- Cliquez sur Créer un déclencheur.
- 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.
- Sélectionnez un type de déclencheur :
- Propriétaire : filtre les événements envoyés depuis des fournisseurs Google Cloud(directement ou via des entrées Cloud Audit Logs) ou des fournisseurs utilisant des messages Pub/Sub.
- Tiers : filtre les événements envoyés depuis des fournisseurs tiers.
- Dans la liste Fournisseur d'événements, sélectionnez Cloud Storage comme source des événements.
- Dans la liste Type d'événement, sélectionnez storage.objects.create.
- Dans la liste Région, sélectionnez us-central1 comme région à partir de laquelle recevoir les événements.
- Sélectionnez le compte de service que vous avez créé. Par exemple,
SERVICE_ACCOUNT_ID@PROJECT_ID
.iam.gserviceaccount.com - Dans la liste Destination de l'événement, sélectionnez Cloud Run.
- Dans la liste Sélectionner un service Cloud Run, sélectionnez helloworld-events.
- Cliquez sur Créer. Notez que vous pouvez également créer un déclencheur Eventarc à l'aide de la page de la console Cloud Run.
gcloud
- Créez un déclencheur filtrant les événements Cloud Storage et utilisant le compte de service que vous avez créé :
Remplacezgcloud eventarc triggers create events-tutorial-trigger \ --destination-run-service=$SERVICE_NAME \ --destination-run-region=$REGION \ --event-filters="type=google.cloud.audit.log.v1.written" \ --event-filters="serviceName=storage.googleapis.com" \ --event-filters="methodName=storage.objects.create" \ --service-account=sample-service-account@PROJECT_ID.iam.gserviceaccount.com
PROJECT_ID
par l'ID du projet Google Cloud.Où :
type
: indique que les journaux d'audit sont créés lorsque les critères de filtre du déclencheur sont remplis.serviceName
: service qui écrit le journal d'audit, à savoir Cloud Storage.methodName
: opération en cours d'audit, à savoirstorage.objects.create
.
events-tutorial-trigger
. - Pour vérifier que
events-tutorial-trigger
a bien été créé, exécutez la commande suivante :gcloud eventarc triggers list --location=$REGION
Le déclencheur,
events-tutorial-trigger
, est répertorié avec une cible helloworld-events
.
Générer et afficher un événement
- Pour générer un événement, procédez comme suit :
Console
- Créez un fichier texte portant le nom
random.txt
et contenant le texte "Hello World". - Dans la console Google Cloud , accédez à la page Buckets.
- Sélectionnez le bucket de stockage que vous avez créé.
- Dans l'onglet Objets, cliquez sur Importer des fichiers, puis importez le fichier
random.txt
.
gcloud
Importez un fichier texte dans Cloud Storage :
echo "Hello World" > random.txt gcloud storage cp random.txt gs://events-tutorial-PROJECT_ID/random.txt
- Créez un fichier texte portant le nom
- Pour afficher l'entrée de journal, procédez comme suit :
- Dans la console Google Cloud , accédez à la page Services.
- Dans la liste des services, cliquez sur le nom du service que vous avez créé pour accéder à la page Informations sur le service.
- Cliquez sur l'onglet Journaux pour obtenir les journaux de requête et de conteneur pour toutes les révisions de ce service. Vous pouvez filtrer les journaux par niveau de gravité.
- Recherchez une entrée de journal semblable à ceci :
oùDetected change in Cloud Storage bucket: storage.googleapis.com/projects/_/buckets/BUCKET_NAME/objects/random.txt
BUCKET_NAME
est le nom du bucket Cloud Storage. -
gcloud logging read "resource.labels.service_name=helloworld-events AND textPayload:random.txt" --format=json
- Recherchez une entrée de journal semblable à ceci :
oùDetected change in Cloud Storage bucket: storage.googleapis.com/projects/_/buckets/BUCKET_NAME/objects/random.txt
BUCKET_NAME
est le nom du bucket Cloud Storage.
Console
gcloud
Vous venez de déployer un service récepteur d'événements sur Cloud Run, de créer un déclencheur Eventarc, de générer un événement à partir de Cloud Storage et de l'afficher dans les journaux Cloud Run.