Ce tutoriel explique comment utiliser Eventarc pour créer un pipeline de traitement qui planifie des requêtes sur un ensemble de données BigQuery public, génère des graphiques basés sur les données et partage des liens vers les graphiques par e-mail.
Objectifs
Dans ce tutoriel, vous allez créer et déployer trois services Google Kubernetes Engine (GKE) s'exécutant dans un cluster GKE et qui recevront des événements à l'aide d'Eventarc :
- Exécuteur de requêtes : déclenché lorsque les tâches Cloud Scheduler publient un message dans un sujet Pub/Sub, ce service extrait les données d'un ensemble de données public sur la COVID-19 à l'aide de l'API BigQuery et enregistre les résultats dans une nouvelle table BigQuery.
- Créateur de graphiques : déclenché lorsque le service d'exécution de requêtes publie un message dans un sujet Pub/Sub, ce service génère des graphiques à l'aide de la bibliothèque de traçage Python Matplotlib et les enregistre dans un bucket Cloud Storage.
- Système d'alerte : déclenché par les journaux d'audit lorsque le service de création de graphiques stocke un graphique dans un bucket Cloud Storage, ce service utilise le service de messagerie SendGrid pour envoyer des liens vers les graphiques à une adresse e-mail.
Le schéma suivant illustre l'architecture générale :
Coûts
Dans ce document, vous utilisez les composants facturables de Google Cloudsuivants :
- Artifact Registry
- BigQuery
- Cloud Build
- Cloud Scheduler
- Cloud Storage
- Eventarc
- Google Kubernetes Engine
- Pub/Sub
Pour obtenir une estimation des coûts en fonction de votre utilisation prévue,
utilisez le simulateur de coût.
Avant de commencer
- Connectez-vous à votre compte Google Cloud . Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits sans frais pour exécuter, tester et déployer des charges de travail.
-
Installez la Google Cloud CLI.
-
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
-
Pour initialiser la gcloud CLI, exécutez la commande suivante :
gcloud init -
Créez ou sélectionnez un projet Google Cloud .
Rôles requis pour sélectionner ou créer un projet
- Sélectionner un projet : la sélection d'un projet ne nécessite pas de rôle IAM spécifique. Vous pouvez sélectionner n'importe quel projet pour lequel un rôle vous a été attribué.
-
Créer un projet : pour créer un projet, vous devez disposer du rôle "Créateur de projet" (
roles/resourcemanager.projectCreator), qui contient l'autorisationresourcemanager.projects.create. Découvrez comment attribuer des rôles.
-
Créez un projet Google Cloud :
gcloud projects create PROJECT_ID
Remplacez
PROJECT_IDpar le nom du projet Google Cloud que vous créez. -
Sélectionnez le projet Google Cloud que vous avez créé :
gcloud config set project PROJECT_ID
Remplacez
PROJECT_IDpar le nom de votre projet Google Cloud .
-
Vérifiez que la facturation est activée pour votre projet Google Cloud .
Activez les API Artifact Registry, BigQuery, Cloud Build, Cloud Logging, Cloud Scheduler, Eventarc, GKE, Pub/Sub et Resource Manager, si ce n'est pas déjà fait :
Rôles requis pour activer les API
Pour activer les API, vous devez disposer de l'autorisation
serviceusage.services.enable. Si vous avez créé le projet, vous disposez probablement déjà de cette autorisation via le rôle Propriétaire (roles/owner). Sinon, vous pouvez l'obtenir via le rôle Administrateur Service Usage (roles/serviceusage.serviceUsageAdmin). Découvrez comment attribuer des rôles.gcloud services enable artifactregistry.googleapis.com
bigquery.googleapis.com cloudbuild.googleapis.com cloudresourcemanager.googleapis.com cloudscheduler.googleapis.com container.googleapis.com eventarc.googleapis.com pubsub.googleapis.com logging.googleapis.com -
Installez la Google Cloud CLI.
-
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
-
Pour initialiser la gcloud CLI, exécutez la commande suivante :
gcloud init -
Créez ou sélectionnez un projet Google Cloud .
Rôles requis pour sélectionner ou créer un projet
- Sélectionner un projet : la sélection d'un projet ne nécessite pas de rôle IAM spécifique. Vous pouvez sélectionner n'importe quel projet pour lequel un rôle vous a été attribué.
-
Créer un projet : pour créer un projet, vous devez disposer du rôle "Créateur de projet" (
roles/resourcemanager.projectCreator), qui contient l'autorisationresourcemanager.projects.create. Découvrez comment attribuer des rôles.
-
Créez un projet Google Cloud :
gcloud projects create PROJECT_ID
Remplacez
PROJECT_IDpar le nom du projet Google Cloud que vous créez. -
Sélectionnez le projet Google Cloud que vous avez créé :
gcloud config set project PROJECT_ID
Remplacez
PROJECT_IDpar le nom de votre projet Google Cloud .
-
Vérifiez que la facturation est activée pour votre projet Google Cloud .
Activez les API Artifact Registry, BigQuery, Cloud Build, Cloud Logging, Cloud Scheduler, Eventarc, GKE, Pub/Sub et Resource Manager, si ce n'est pas déjà fait :
Rôles requis pour activer les API
Pour activer les API, vous devez disposer de l'autorisation
serviceusage.services.enable. Si vous avez créé le projet, vous disposez probablement déjà de cette autorisation via le rôle Propriétaire (roles/owner). Sinon, vous pouvez l'obtenir via le rôle Administrateur Service Usage (roles/serviceusage.serviceUsageAdmin). Découvrez comment attribuer des rôles.gcloud services enable artifactregistry.googleapis.com
bigquery.googleapis.com cloudbuild.googleapis.com cloudresourcemanager.googleapis.com cloudscheduler.googleapis.com container.googleapis.com eventarc.googleapis.com pubsub.googleapis.com logging.googleapis.com - Pour Cloud Storage, activez la journalisation d'audit pour les types d'accès aux données
ADMIN_READ,DATA_WRITEetDATA_READ.- Lisez la stratégie IAM (Identity and Access Management) associée à votre projet, dossier ou organisation Google Cloud , et stockez-la dans un fichier temporaire :
gcloud projects get-iam-policy PROJECT_ID > /tmp/policy.yaml
- Dans un éditeur de texte, ouvrez
/tmp/policy.yaml, puis ajoutez ou modifiez uniquement la configuration du journal d'audit dans la sectionauditConfigs:auditConfigs: - auditLogConfigs: - logType: ADMIN_READ - logType: DATA_WRITE - logType: DATA_READ service: storage.googleapis.com bindings: - members: [...] etag: BwW_bHKTV5U= version: 1
- Rédigez votre nouvelle stratégie IAM :
gcloud projects set-iam-policy PROJECT_ID /tmp/policy.yaml
Si la commande précédente signale un conflit avec une autre modification, répétez ces étapes en commençant par la lecture de la stratégie IAM. Pour en savoir plus, consultez la page Configurer les journaux d'audit pour l'accès aux données à l'aide de l'API.
- Lisez la stratégie IAM (Identity and Access Management) associée à votre projet, dossier ou organisation Google Cloud , et stockez-la dans un fichier temporaire :
- Définissez les valeurs par défaut utilisées dans ce tutoriel :
CLUSTER_NAME=events-cluster CLUSTER_LOCATION=us-central1 PROJECT_ID=PROJECT_ID gcloud config set project $PROJECT_ID gcloud config set eventarc/location $CLUSTER_LOCATION
Remplacez
PROJECT_IDpar l'ID du projet.
Créer une clé API SendGrid
SendGrid est un fournisseur de messagerie dans le cloud qui vous permet d'envoyer des e-mails, sans avoir à gérer de serveurs de messagerie.
- Connectez-vous à Sendgrid et accédez à Paramètres > Clés API.
- Cliquez sur Créer la clé API.
- Sélectionnez les autorisations pour la clé. La clé a besoin au minimum de l'autorisation d'envoi d'e-mails pour envoyer des e-mails.
- Cliquez sur Enregistrer pour créer la clé.
- SendGrid génère une nouvelle clé. Il s'agit de la seule copie de la clé. Assurez-vous de la copier et de l'enregistrer pour plus tard.
Créer un cluster GKE
Créez un cluster avec Workload Identity Federation for GKE activé afin qu'il puisse accéder aux services Google Cloud à partir des applications qui s'exécutent dans GKE. Vous avez également besoin de Workload Identity Federation for GKE pour transférer des événements à l'aide d'Eventarc.
Créez un cluster GKE avec les modules complémentaires
HttpLoadBalancingetHorizontalPodAutoscalingactivés :gcloud container clusters create $CLUSTER_NAME \ --addons=HttpLoadBalancing,HorizontalPodAutoscaling \ --machine-type=n1-standard-4 \ --enable-autoscaling --min-nodes=2 --max-nodes=10 \ --no-issue-client-certificate --num-nodes=2 \ --logging=SYSTEM,WORKLOAD \ --monitoring=SYSTEM \ --scopes=cloud-platform,logging-write,monitoring-write,pubsub \ --region=$CLUSTER_LOCATION \ --release-channel=rapid \ --workload-pool=$PROJECT_ID.svc.id.googAttendez quelques minutes que la création du cluster soit terminée. Au cours du processus, des avertissements peuvent s'afficher, que vous pouvez ignorer en toute sécurité. Une fois le cluster créé, le résultat ressemble à ce qui suit :
Creating cluster ...done. Created [https://container.googleapis.com/v1/projects/my-project/zones/us-central1/clusters/events-cluster].
Mettez à jour le fichier
kubeconfigavec les identifiants et les informations sur les points de terminaison pour pointerkubectlvers le cluster GKE :gcloud container clusters get-credentials $CLUSTER_NAME \ --region=$CLUSTER_LOCATION
Créez un dépôt standard Artifact Registry pour stocker votre image de conteneur Docker :
gcloud artifacts repositories create REPOSITORY \ --repository-format=docker \ --location=$CLUSTER_LOCATION
Remplacez
REPOSITORYpar un nom unique pour le dépôt.
Configurer les comptes de service
Pour permettre aux nœuds GKE d'extraire des images de conteneur depuis Artifact Registry, attribuez le rôle Lecteur Artifact Registry (
roles/artifactregistry.reader) sur le projet au compte de service Compute Engine par défaut utilisé par les nœuds du cluster :PROJECT_NUMBER="$(gcloud projects describe $(gcloud config get-value project) --format='value(projectNumber)')" gcloud projects add-iam-policy-binding $PROJECT_ID \ --member "serviceAccount:$PROJECT_NUMBER-compute@developer.gserviceaccount.com" \ --condition=None \ --role "roles/artifactregistry.reader"
Pour permettre aux services GKE d'interroger et d'écrire dans BigQuery, de publier dans Pub/Sub et d'importer des graphiques dans Cloud Storage, accordez les rôles Éditeur de données BigQuery (
roles/bigquery.dataEditor), Utilisateur de job BigQuery (roles/bigquery.jobUser), Éditeur Pub/Sub (roles/pubsub.publisher) et Administrateur des objets de l'espace de stockage (roles/storage.objectAdmin) sur le projet au compte de service Kubernetesdefaultdans l'espace de nomsdefault:gcloud projects add-iam-policy-binding $PROJECT_ID \ --member "principal://iam.googleapis.com/projects/$PROJECT_NUMBER/locations/global/workloadIdentityPools/$PROJECT_ID.svc.id.goog/subject/ns/default/sa/default" \ --condition=None \ --role "roles/bigquery.dataEditor" gcloud projects add-iam-policy-binding $PROJECT_ID \ --member "principal://iam.googleapis.com/projects/$PROJECT_NUMBER/locations/global/workloadIdentityPools/$PROJECT_ID.svc.id.goog/subject/ns/default/sa/default" \ --condition=None \ --role "roles/bigquery.jobUser" gcloud projects add-iam-policy-binding $PROJECT_ID \ --member "principal://iam.googleapis.com/projects/$PROJECT_NUMBER/locations/global/workloadIdentityPools/$PROJECT_ID.svc.id.goog/subject/ns/default/sa/default" \ --condition=None \ --role "roles/pubsub.publisher" gcloud projects add-iam-policy-binding $PROJECT_ID \ --member "principal://iam.googleapis.com/projects/$PROJECT_NUMBER/locations/global/workloadIdentityPools/$PROJECT_ID.svc.id.goog/subject/ns/default/sa/default" \ --condition=None \ --role "roles/storage.objectAdmin"
Activer les destinations GKE
Pour permettre à Eventarc de gérer les ressources du cluster GKE, activez les destinations GKE et liez le compte de service Eventarc aux rôles requis.
Activez les destinations GKE pour Eventarc :
gcloud eventarc gke-destinations init
Lorsque vous êtes invité à lier les rôles requis, saisissez
y.Les rôles suivants sont liés :
roles/compute.viewerroles/container.developerroles/iam.serviceAccountAdmin
Créer un bucket Cloud Storage
Créez un bucket Cloud Storage dans la même région que votre service GKE pour enregistrer les graphiques, puis accordez à votre compte un accès en lecture (roles/storage.objectViewer) pour afficher les graphiques générés :
export BUCKET="$(gcloud config get-value core/project)-charts" gcloud storage buckets create gs://${BUCKET} --location=$CLUSTER_LOCATION gcloud storage buckets update gs://${BUCKET} --uniform-bucket-level-access gcloud storage buckets add-iam-policy-binding gs://${BUCKET} \ --member="user:$(gcloud config get-value core/account)" \ --role=roles/storage.objectViewer
Cloner le dépôt
Clonez le dépôt GitHub.
git clone https://github.com/GoogleCloudPlatform/eventarc-samples cd eventarc-samples/processing-pipelines
Créer un compte de service et des rôles d'accès liés
Avant de créer les déclencheurs Eventarc, configurez un compte de service géré par l'utilisateur et attribuez-lui des rôles spécifiques afin qu'Eventarc puisse transférer les événements Pub/Sub.
Créez un compte de service appelé
eventarc-triggers-test-sa:TRIGGER_GSA=eventarc-triggers-test-sa gcloud iam service-accounts create $TRIGGER_GSA
Attribuez les rôles
pubsub.subscriber,monitoring.metricWritereteventarc.eventReceiverau compte de service :PROJECT_ID=$(gcloud config get-value project) gcloud projects add-iam-policy-binding $PROJECT_ID \ --member "serviceAccount:$TRIGGER_GSA@$PROJECT_ID.iam.gserviceaccount.com" \ --condition=None \ --role "roles/pubsub.subscriber" gcloud projects add-iam-policy-binding $PROJECT_ID \ --member "serviceAccount:$TRIGGER_GSA@$PROJECT_ID.iam.gserviceaccount.com" \ --condition=None \ --role "roles/monitoring.metricWriter" gcloud projects add-iam-policy-binding $PROJECT_ID \ --member "serviceAccount:$TRIGGER_GSA@$PROJECT_ID.iam.gserviceaccount.com" \ --condition=None \ --role "roles/eventarc.eventReceiver"
Déployer le système d'alerte
À partir du répertoire bigquery/notifier/python, déployez un service GKE qui reçoit les événements du service de création de graphiques et utilise SendGrid pour envoyer des liens vers les graphiques générés par e-mail.
Créez et transférez l'image de conteneur :
pushd bigquery/notifier/python export SERVICE_NAME=notifier docker build -t $CLUSTER_LOCATION-docker.pkg.dev/$(gcloud config get-value project)/REPOSITORY/${SERVICE_NAME}:v1 . docker push $CLUSTER_LOCATION-docker.pkg.dev/$(gcloud config get-value project)/REPOSITORY/${SERVICE_NAME}:v1 popd
Créez un déploiement Kubernetes pour l'image de conteneur et définissez les variables d'environnement requises, y compris une adresse à laquelle envoyer des e-mails et la clé API SendGrid :
export TO_EMAILS=EMAIL_ADDRESS export SENDGRID_API_KEY=YOUR_SENDGRID_API_KEY kubectl create deployment ${SERVICE_NAME} \ --image=$CLUSTER_LOCATION-docker.pkg.dev/$(gcloud config get-value project)/REPOSITORY/${SERVICE_NAME}:v1 kubectl set env deployment/${SERVICE_NAME} \ TO_EMAILS=${TO_EMAILS} \ SENDGRID_API_KEY=${SENDGRID_API_KEY} \ BUCKET=${BUCKET}
Remplacez les éléments suivants :
EMAIL_ADDRESS: adresse e-mail à laquelle envoyer les liens vers les graphiques générés.YOUR_SENDGRID_API_KEY: clé API SendGrid que vous avez notée précédemment.REPOSITORY: nom de votre dépôt Artifact Registry
Exposez le déploiement en tant que service Kubernetes :
kubectl expose deployment ${SERVICE_NAME} \ --type=ClusterIP --port=80 --target-port=8080
Créer un déclencheur pour le système d'alerte
Créez un déclencheur Eventarc pour le service de notification déployé sur GKE qui filtre les journaux d'audit Cloud Storage pour le bucket Cloud Storage spécifié et où methodName est storage.objects.create :
gcloud eventarc triggers create trigger-${SERVICE_NAME}-gke \ --destination-gke-cluster=$CLUSTER_NAME \ --destination-gke-location=$CLUSTER_LOCATION \ --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/objects/*" \ --service-account=$TRIGGER_GSA@$PROJECT_ID.iam.gserviceaccount.com
Cette action crée un déclencheur appelé trigger-notifier-gke.
Déployer le service de création de graphiques
Depuis le répertoire bigquery/chart-creator/python, déployez un service GKE qui reçoit les événements de l'exécuteur de requêtes, récupère les données d'une table BigQuery pour un pays spécifique, puis génère un graphique basé sur les données à l'aide de Matplotlib. Le graphique est importé dans un bucket Cloud Storage.
Créez et transférez l'image de conteneur :
pushd bigquery/chart-creator/python export SERVICE_NAME=chart-creator docker build -t $CLUSTER_LOCATION-docker.pkg.dev/$(gcloud config get-value project)/REPOSITORY/${SERVICE_NAME}:v1 . docker push $CLUSTER_LOCATION-docker.pkg.dev/$(gcloud config get-value project)/REPOSITORY/${SERVICE_NAME}:v1 popd
Créez un déploiement Kubernetes pour l'image de conteneur et définissez la variable d'environnement
BUCKET:kubectl create deployment ${SERVICE_NAME} \ --image=$CLUSTER_LOCATION-docker.pkg.dev/$(gcloud config get-value project)/REPOSITORY/${SERVICE_NAME}:v1 kubectl set env deployment/${SERVICE_NAME} \ BUCKET=${BUCKET}
Exposez le déploiement en tant que service Kubernetes :
kubectl expose deployment ${SERVICE_NAME} \ --type=ClusterIP --port=80 --target-port=8080
Créer un déclencheur pour le service de création de graphiques
Créez un déclencheur Eventarc pour le service de création de graphiques déployé sur GKE, qui filtre les messages publiés dans un sujet Pub/Sub.
Créez le déclencheur :
gcloud eventarc triggers create trigger-${SERVICE_NAME}-gke \ --destination-gke-cluster=$CLUSTER_NAME \ --destination-gke-location=$CLUSTER_LOCATION \ --destination-gke-namespace=default \ --destination-gke-service=$SERVICE_NAME \ --destination-gke-path=/ \ --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \ --service-account=$TRIGGER_GSA@$PROJECT_ID.iam.gserviceaccount.com
Cette action crée un déclencheur appelé
trigger-chart-creator-gke.Définissez la variable d'environnement du sujet Pub/Sub.
export TOPIC_QUERY_COMPLETED=$(basename $(gcloud eventarc triggers describe trigger-${SERVICE_NAME}-gke --format='value(transport.pubsub.topic)'))
Déployer le service d'exécution de requêtes
À partir du répertoire processing-pipelines, déployez un service GKE qui reçoit les événements de Cloud Scheduler, récupère les données d'un ensemble de données public sur la COVID-19 et enregistre les résultats dans une nouvelle table BigQuery.
Créez et transférez l'image de conteneur :
export SERVICE_NAME=query-runner docker build -t $CLUSTER_LOCATION-docker.pkg.dev/$(gcloud config get-value project)/REPOSITORY/${SERVICE_NAME}:v1 -f Dockerfile . docker push $CLUSTER_LOCATION-docker.pkg.dev/$(gcloud config get-value project)/REPOSITORY/${SERVICE_NAME}:v1
Créez un déploiement Kubernetes pour l'image de conteneur et définissez les variables d'environnement
PROJECT_IDetTOPIC_ID:kubectl create deployment ${SERVICE_NAME} \ --image=$CLUSTER_LOCATION-docker.pkg.dev/$(gcloud config get-value project)/REPOSITORY/${SERVICE_NAME}:v1 kubectl set env deployment/${SERVICE_NAME} \ PROJECT_ID=$(gcloud config get-value project) \ TOPIC_ID=${TOPIC_QUERY_COMPLETED}
Exposez le déploiement en tant que service Kubernetes :
kubectl expose deployment ${SERVICE_NAME} \ --type=ClusterIP --port=80 --target-port=8080
Créer un déclencheur pour le service d'exécution de requêtes
Créez un déclencheur Eventarc pour le service d'exécution de requêtes déployé sur GKE qui filtre les messages publiés dans un sujet Pub/Sub.
Créez le déclencheur :
gcloud eventarc triggers create trigger-${SERVICE_NAME}-gke \ --destination-gke-cluster=$CLUSTER_NAME \ --destination-gke-location=$CLUSTER_LOCATION \ --destination-gke-namespace=default \ --destination-gke-service=$SERVICE_NAME \ --destination-gke-path=/ \ --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \ --service-account=$TRIGGER_GSA@$PROJECT_ID.iam.gserviceaccount.com
Cette action crée un déclencheur appelé
trigger-query-runner-gke.Définissez une variable d'environnement pour le sujet Pub/Sub.
export TOPIC_QUERY_SCHEDULED=$(basename $(gcloud eventarc triggers describe trigger-${SERVICE_NAME}-gke --format='value(transport.pubsub.topic)'))
Planifier les tâches
Le pipeline de traitement est déclenché par deux tâches Cloud Scheduler. Créez deux tâches Cloud Scheduler qui publient un sujet Pub/Sub une fois par jour :
gcloud scheduler jobs create pubsub cre-scheduler-uk \ --location=$CLUSTER_LOCATION \ --schedule="0 16 * * *" \ --topic=${TOPIC_QUERY_SCHEDULED} \ --message-body="United Kingdom"
gcloud scheduler jobs create pubsub cre-scheduler-cy \ --location=$CLUSTER_LOCATION \ --schedule="0 17 * * *" \ --topic=${TOPIC_QUERY_SCHEDULED} \ --message-body="Cyprus"
La planification est spécifiée au format unix-cron.
Par exemple, 0 16 * * * signifie que les tâches s'exécutent tous les jours à 16:00 UTC.
Exécuter le pipeline
Vérifiez que tous les déclencheurs ont bien été créés :
gcloud eventarc triggers list
La sortie devrait ressembler à ce qui suit :
NAME TYPE DESTINATION ACTIVE LOCATION trigger-chart-creator-gke google.cloud.pubsub.topic.v1.messagePublished GKE:chart-creator Yes us-central1 trigger-notifier-gke google.cloud.audit.log.v1.written GKE:notifier Yes us-central1 trigger-query-runner-gke google.cloud.pubsub.topic.v1.messagePublished GKE:query-runner Yes us-central1Récupérez les ID des jobs Cloud Scheduler :
gcloud scheduler jobs list --location=$CLUSTER_LOCATION
La sortie devrait ressembler à ce qui suit :
ID LOCATION SCHEDULE (TZ) TARGET_TYPE STATE cre-scheduler-cy us-central1 0 17 * * * (Etc/UTC) Pub/Sub ENABLED cre-scheduler-uk us-central1 0 16 * * * (Etc/UTC) Pub/Sub ENABLEDBien que l'exécution des tâches soit planifiée tous les jours à 16h et 17h, vous pouvez également les exécuter manuellement :
gcloud scheduler jobs run cre-scheduler-cy --location=$CLUSTER_LOCATION
gcloud scheduler jobs run cre-scheduler-uk --location=$CLUSTER_LOCATION
Au bout de quelques minutes, vérifiez que le bucket Cloud Storage contient deux graphiques :
gcloud storage ls gs://${BUCKET}
La sortie devrait ressembler à ce qui suit :
gs://PROJECT_ID-charts/chart-cyprus.png gs://PROJECT_ID-charts/chart-unitedkingdom.png
Félicitations ! Vous devez également recevoir deux e-mails contenant les liens vers les graphiques.
Effectuer un nettoyage
Si vous avez créé un projet pour ce tutoriel, supprimez-le. Si vous avez utilisé un projet existant et que vous souhaitez le conserver sans les modifications du présent tutoriel, supprimez les ressources créées pour ce tutoriel.
Supprimer un projet Google Cloud :
gcloud projects delete PROJECT_ID
Supprimer les ressources du tutoriel
Supprimez les services et les déploiements Kubernetes que vous avez déployés dans ce tutoriel, puis supprimez le cluster GKE :
kubectl delete service notifier chart-creator query-runner kubectl delete deployment notifier chart-creator query-runner gcloud container clusters delete $CLUSTER_NAME --region=$CLUSTER_LOCATION
Supprimez tous les déclencheurs Eventarc que vous avez créés dans ce tutoriel :
gcloud eventarc triggers delete TRIGGER_NAME
Remplacez
TRIGGER_NAMEpar le nom de votre déclencheur.Supprimez les images d'Artifact Registry :
gcloud artifacts docker images delete $CLUSTER_LOCATION-docker.pkg.dev/$(gcloud config get-value project)/REPOSITORY/notifier:v1 gcloud artifacts docker images delete $CLUSTER_LOCATION-docker.pkg.dev/$(gcloud config get-value project)/REPOSITORY/chart-creator:v1 gcloud artifacts docker images delete $CLUSTER_LOCATION-docker.pkg.dev/$(gcloud config get-value project)/REPOSITORY/query-runner:v1
Supprimez le dépôt Artifact Registry :
gcloud artifacts repositories delete REPOSITORY \ --location=$CLUSTER_LOCATION
Supprimez le bucket, ainsi que tous les objets qu'il contient :
gcloud storage rm --recursive gs://${BUCKET}/Supprimez les jobs Cloud Scheduler :
gcloud scheduler jobs delete cre-scheduler-cy --location=$CLUSTER_LOCATION gcloud scheduler jobs delete cre-scheduler-uk --location=$CLUSTER_LOCATION
Supprimez les configurations Google Cloud CLI par défaut que vous avez ajoutées lors de la configuration du tutoriel :
gcloud config unset project gcloud config unset eventarc/location