Cette page vous explique comment configurer des événements pour Cloud Run pour Anthos et recevoir des événements de Cloud Storage.
Dans le cadre de ce guide démarrage rapide, vous allez effectuer les étapes suivantes :
- Créer un cluster GKE et activer Cloud Run pour Anthos sur Google Cloud.
- Initialiser des événements pour Cloud Run pour Anthos.
- Créer un agent d'événements pour acheminer les événements de la source vers le destinataire.
- Déployer un service Cloud Run pour Anthos qui reçoit des événements.
- Configurer Cloud Storage pour générer des événements.
- Générer et afficher un événement.
Avant de commencer
- Connectez-vous à votre compte Google.
Si vous n'en possédez pas déjà un, vous devez en créer un.
-
Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.
-
Assurez-vous que la facturation est activée pour votre projet Cloud. Découvrez comment vérifier que la facturation est activée pour votre projet.
- Installez et initialisez le SDK Cloud.
- Assurez-vous que vous utilisez la dernière version de l'outil de ligne de commande
gcloud
. - Définissez l'outil de ligne de commande
gcloud
pour utiliser votre projet GCP :gcloud config set project PROJECT-ID
- Installez les composants bêta de l'outil de ligne de commande
gcloud
:gcloud components install beta
- Activez les services utilisés dans ce guide de démarrage rapide :
gcloud services enable cloudapis.googleapis.com gcloud services enable container.googleapis.com gcloud services enable containerregistry.googleapis.com gcloud services enable cloudbuild.googleapis.com
- Définissez les variables de configuration de l'outil de ligne de commande
gcloud
:gcloud config set run/cluster events-cluster gcloud config set run/cluster_location us-central1 gcloud config set run/platform gke
- Facultatif : Vous pouvez vérifier les paramètres de configuration à l'aide de l'outil de ligne de commande
gcloud
en saisissant :gcloud config list
Le résultat ressemble à ce qui suit :
[run] cluster = events-cluster cluster_location = us-central1 platform = gke
Créer un cluster GKE avec Cloud Run pour Anthos activé
Créez un cluster Google Kubernetes Engine pour Cloud Run pour Anthos avec les modules complémentaires
CloudRun
,HttpLoadBalancing
etHorizontalPodAutoscaling
activés :gcloud beta container clusters create events-cluster \ --addons=HttpLoadBalancing,HorizontalPodAutoscaling,CloudRun \ --machine-type=n1-standard-4 \ --enable-autoscaling --min-nodes=3 --max-nodes=10 \ --no-issue-client-certificate --num-nodes=3 --image-type=cos \ --enable-stackdriver-kubernetes \ --scopes=cloud-platform,logging-write,monitoring-write,pubsub \ --zone us-central1 \ --release-channel=rapid
Attendez quelques minutes que la création du cluster soit terminée. Au cours du processus de création, des avertissements peuvent s'afficher, que vous pouvez ignorer en toute sécurité. Une fois la création du cluster terminée, le résultat est semblable à celui-ci :
Creating cluster events-cluster...done. Created [https://container.googleapis.com/v1beta1/ \ projects/my-project/zones/us-central1/clusters/events-cluster].
où
my-project
correspond à l'ID de votre projet. Vous venez de créer un cluster Google Kubernetes Engine nomméevents-cluster
dans le projetmy-project
.
Initialiser des événements pour Cloud Run pour Anthos
Pour initialiser des événements pour Cloud Run pour Anthos.
Initialisez les événements pour Cloud Run pour Anthos à l'aide de l'outil de ligne de commande
gcloud
:gcloud beta events init --platform gke
Lorsque vous y êtes invité, sélectionnez
events-cluster
comme cluster GKE.Saisissez
Y
à toutes les invites vous demandant de créer des comptes de service, liez-les à des rôles spécifiques, en générant de nouvelles clés, et activez les services nécessaires.
Cela crée des pods dans deux espaces de noms Kubernetes appelés
cloud-run-events
etknative-eventing
.Facultatif : Vérifiez que le pod a bien été créé :
kubectl get pods -n cloud-run-events
Le résultat ressemble à ce qui suit :
NAME READY STATUS RESTARTS AGE controller-9cc679b67-2952n 1/1 Running 0 22s webhook-8576c4cfcb-dhz82 1/1 Running 0 16m
Pour vérifier l'espace de noms
knative-eventing
des pods, saisissez :kubectl get pods -n knative-eventing
Le résultat ressemble à ce qui suit :
NAME READY STATUS RESTARTS AGE eventing-controller-77f46f6cf8-kj9ck 1/1 Running 0 17m eventing-webhook-5bc787965f-hcmwg 1/1 Running 0 17m
Créer un agent d'événements
Dans le cas des événements Cloud Run pour Anthos, les agents acheminent les événements de la source vers un service de destination. Dans ce guide de démarrage rapide, vous allez créer un agent qui achemine les événements de Cloud Storage vers un service Cloud Run pour Anthos.
Pour créer un agent, procédez comme suit :
Créez un espace de noms
events
:kubectl create namespace events
Initialisez l'espace de noms avec le secret par défaut :
gcloud beta events namespaces init events \ --copy-default-secret
Créez l'agent d'événements :
gcloud beta events brokers create default \ --namespace events
Facultatif : Après quelques minutes, vous pouvez vérifier l'état de votre agent en exécutant la commande suivante :
kubectl get brokers \ -n events
Déployer un service Cloud Run pour Anthos pour recevoir des événements
Déployez un service Cloud Run pour Anthos qui reçoit les événements de l'agent et les consigne.
Pour déployer le service Cloud Run pour Anthos, procédez comme suit :
Clonez le dépôt :
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git cd python-docs-samples/eventarc/audit-storage
Java
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git cd java-docs-samples/eventarc/audit-storage
Go
git clone https://github.com/GoogleCloudPlatform/golang-samples.git cd golang-samples/eventarc/audit_storage
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git cd nodejs-docs-samples/eventarc/audit-storage
C#
git clone https://github.com/GoogleCloudPlatform/dotnet-docs-samples.git cd dotnet-docs-samples/eventarc/audit-storage
Créez le conteneur et importez-le dans Cloud Build :
gcloud builds submit \ --tag gcr.io/$(gcloud config get-value project)/events-quickstart-container
Déployez l'image de conteneur dans Cloud Run pour Anthos :
gcloud run deploy events-quickstart-receiver \ --namespace=events \ --image gcr.io/$(gcloud config get-value project)/events-quickstart-container
Lorsque l'URL du service s'affiche, cela signifie que le déploiement a réussi.
Configurer Cloud Storage
Cloud Storage génère des événements en cas de modification du bucket de stockage et les envoie à l'agent d'événements. Pour configurer Cloud Storage, procédez comme suit :
Créez un bucket Cloud Storage à l'aide de l'outil de ligne de commande
gsutil
:gsutil mb \ -p $(gcloud config get-value project) \ -l us-central1 \ gs://"events-quickstart-$(gcloud config get-value project)"
Dans cet exemple, le bucket Cloud Storage est créé dans la région us-central1.
Récupérez le compte de service Cloud Storage :
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/projects/$(gcloud config get-value project)/serviceAccount"
Attribuez au compte de service Cloud Storage les droits de publication sur Pub/Sub :
gcloud projects add-iam-policy-binding $(gcloud config get-value project) \ --member=serviceAccount:CLOUD-STORAGE-SERVICE-ACCOUNT \ --role roles/pubsub.publisher
Créer un déclencheur Cloud Storage
Lorsque vous créez un déclencheur, vous devez spécifier le service Cloud Run pour Anthos qui reçoit les événements de Cloud Storage.
Créez le déclencheur Cloud Storage :
gcloud beta events triggers create trigger-storage \ --namespace events \ --target-service events-quickstart-receiver \ --type=google.cloud.storage.object.v1.finalized \ --parameters bucket=events-quickstart-$(gcloud config get-value project)
Cette action crée un déclencheur pour votre bucket Cloud Storage
events-quickstart-bucket
.Facultatif : Vous pouvez vérifier l'état du déclencheur en exécutant la commande suivante :
gcloud beta events triggers list \ --namespace=events
Notez que même si la création du déclencheur est terminée et que le déclencheur est prêt, il peut lui falloir jusqu'à 10 minutes pour propager et filtrer des événements Cloud Storage.
Générer et afficher un événement
Pour générer un événement, créez un fichier texte portant le nom de fichier
random.txt
et contenant le texte "Hello World", puis importez-le dans Cloud Storage à l'aide de l'outil de ligne de commandegsutil
.echo "Hello World" > random.txt gsutil cp random.txt gs://events-quickstart-$(gcloud config get-value project)/random.txt
Votre importation génère un événement, et le service Cloud Run pour Anthos consigne le message de l'événement.
Pour afficher le message dans Cloud Logging :
Félicitations ! Vous venez de déployer des événements pour Cloud Run pour Anthos, de déclencher un événement et d'enregistrer son contenu.
Nettoyer
Pour arrêter la facturation de toutes les ressources utilisées dans votre projet Cloud de test, supprimez le projet :
- Dans Cloud Console, accédez à la page Gérer les ressources.
- Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
- Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez sur Arrêter pour supprimer le projet.