Veja neste tutorial como usar o Eventarc para criar um pipeline de processamento que programa consultas a um conjunto de dados público do BigQuery, gera gráficos com base nos dados e compartilha links para os gráficos por e-mail.
Objetivos
Neste tutorial, você vai criar e implantar três serviços do Google Kubernetes Engine (GKE) em execução em um cluster do GKE que recebem eventos usando o Eventarc:
- Executor de consulta: acionado quando os jobs do Cloud Scheduler publicam uma mensagem em um tópico do Pub/Sub. Este serviço usa a API BigQuery para recuperar dados de um conjunto de dados público sobre a COVID-19 e salva os resultados em uma nova tabela do BigQuery.
- Criador de gráficos: acionado quando o serviço executor de consultas publica uma mensagem em um tópico do Pub/Sub topic. Este serviço gera gráficos usando a biblioteca de plotagem do Python Matplotlib e salva os gráficos em um bucket do Cloud Storage.
- Notificador: acionado por registros de auditoria quando o serviço criador de gráficos armazena um gráfico em um bucket do Cloud Storage. Esse serviço usa o serviço de e-mail SendGrid para enviar links dos gráficos para um endereço de e-mail.
O diagrama a seguir mostra a arquitetura geral:
Custos
Neste documento, você usará os seguintes componentes faturáveis do Google Cloud:
- Artifact Registry
- BigQuery
- Cloud Build
- Cloud Scheduler
- Cloud Storage
- Eventarc
- Google Kubernetes Engine
- Pub/Sub
Para gerar uma estimativa de custo baseada na sua projeção de uso,
use a calculadora de preços.
Antes de começar
- Faça login na sua conta do Google Cloud . Se você começou a usar o Google Cloudagora, crie uma conta para avaliar o desempenho dos nossos produtos em situações reais. Clientes novos também recebem US $300 em créditos para executar, testar e implantar cargas de trabalho.
-
Instale a CLI do Google Cloud.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init -
Crie ou selecione um projeto do Google Cloud .
Papéis necessários para selecionar ou criar um projeto
- Selecionar um projeto: não é necessário um papel específico do IAM para selecionar um projeto. Você pode escolher qualquer projeto em que tenha recebido um papel.
-
Criar um projeto: para criar um projeto, é preciso ter o papel de Criador de projetos
(
roles/resourcemanager.projectCreator), que contém a permissãoresourcemanager.projects.create. Saiba como conceder papéis.
-
Crie um projeto do Google Cloud :
gcloud projects create PROJECT_ID
Substitua
PROJECT_IDpor um nome para o projeto do Google Cloud que você está criando. -
Selecione o projeto do Google Cloud que você criou:
gcloud config set project PROJECT_ID
Substitua
PROJECT_IDpelo nome do projeto do Google Cloud .
-
Verifique se o faturamento está ativado para o projeto do Google Cloud .
Ative as APIs Artifact Registry, BigQuery, Cloud Build, Cloud Logging, Cloud Scheduler, Eventarc, GKE, Pub/Sub e API Resource Manager, se ainda não estiverem ativadas:
Funções necessárias para ativar APIs
Para ativar APIs, você precisa da permissão
serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão pelo papel de Proprietário (roles/owner). Caso contrário, é possível receber essa permissão pelo papel de Administrador do Service Usage (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis.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 -
Instale a CLI do Google Cloud.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init -
Crie ou selecione um projeto do Google Cloud .
Papéis necessários para selecionar ou criar um projeto
- Selecionar um projeto: não é necessário um papel específico do IAM para selecionar um projeto. Você pode escolher qualquer projeto em que tenha recebido um papel.
-
Criar um projeto: para criar um projeto, é preciso ter o papel de Criador de projetos
(
roles/resourcemanager.projectCreator), que contém a permissãoresourcemanager.projects.create. Saiba como conceder papéis.
-
Crie um projeto do Google Cloud :
gcloud projects create PROJECT_ID
Substitua
PROJECT_IDpor um nome para o projeto do Google Cloud que você está criando. -
Selecione o projeto do Google Cloud que você criou:
gcloud config set project PROJECT_ID
Substitua
PROJECT_IDpelo nome do projeto do Google Cloud .
-
Verifique se o faturamento está ativado para o projeto do Google Cloud .
Ative as APIs Artifact Registry, BigQuery, Cloud Build, Cloud Logging, Cloud Scheduler, Eventarc, GKE, Pub/Sub e API Resource Manager, se ainda não estiverem ativadas:
Funções necessárias para ativar APIs
Para ativar APIs, você precisa da permissão
serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão pelo papel de Proprietário (roles/owner). Caso contrário, é possível receber essa permissão pelo papel de Administrador do Service Usage (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis.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 - Para o Cloud Storage, ative a geração de registros de auditoria para os tipos de acesso a dados
ADMIN_READ,DATA_WRITEeDATA_READ.- Leia a política do Identity and Access Management (IAM) associada ao seu
projeto, pasta ou organização do Google Cloud e armazene-a em um arquivo temporário:
gcloud projects get-iam-policy PROJECT_ID > /tmp/policy.yaml
- Em um editor de texto, abra
/tmp/policy.yamle adicione ou altere apenas a configuração do registro de auditoria na seçãoauditConfigs:auditConfigs: - auditLogConfigs: - logType: ADMIN_READ - logType: DATA_WRITE - logType: DATA_READ service: storage.googleapis.com bindings: - members: [...] etag: BwW_bHKTV5U= version: 1
- Grave a nova política de IAM:
gcloud projects set-iam-policy PROJECT_ID /tmp/policy.yaml
Se o comando anterior relatar um conflito com outra alteração, repita essas etapas, começando com a leitura da política de IAM. Para mais informações, acesse Configurar registros de auditoria de acesso a dados com a API.
- Leia a política do Identity and Access Management (IAM) associada ao seu
projeto, pasta ou organização do Google Cloud e armazene-a em um arquivo temporário:
- Defina os padrões usados neste tutorial:
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
Substitua
PROJECT_IDpelo ID do projeto.
Criar uma chave de API do SendGrid
O SendGrid é um provedor de e-mail baseado em nuvem que permite enviar e-mails sem precisar manter servidores de e-mail.
- Faça login no SendGrid e acesse Configurações > Chaves de API.
- Clique em Criar chave de API.
- Selecione as permissões para a chave. Para enviar e-mails, a chave precisa, no mínimo, de permissões de envio de e-mail.
- Clique em Save para criar a chave.
- O SendGrid gera uma nova chave. Esta é a única cópia da chave, portanto, faça uma cópia dela e salve-a para uso futuro.
Criar um cluster do GKE
Crie um cluster com a Federação de Identidade da Carga de Trabalho para GKE ativada para que ele possa acessar os serviços do Google Cloud a partir de aplicativos em execução no GKE. Você também precisa da Federação de Identidade da Carga de Trabalho para GKE para encaminhar eventos usando o Eventarc.
Crie um cluster do GKE com os complementos
HttpLoadBalancingeHorizontalPodAutoscalingativados: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.googAguarde alguns minutos para que a criação do cluster seja concluída. Durante o processo, talvez você veja avisos que podem ser ignorados com segurança. Depois da criação do cluster, a saída é semelhante a esta:
Creating cluster ...done. Created [https://container.googleapis.com/v1/projects/my-project/zones/us-central1/clusters/events-cluster].
Atualize o arquivo
kubeconfigcom credenciais e informações de endpoint para apontarkubectlno cluster do GKE:gcloud container clusters get-credentials $CLUSTER_NAME \ --region=$CLUSTER_LOCATION
Crie um repositório padrão do Artifact Registry para armazenar a imagem do contêiner do Docker:
gcloud artifacts repositories create REPOSITORY \ --repository-format=docker \ --location=$CLUSTER_LOCATION
Substitua
REPOSITORYpor um nome exclusivo para o repositório.
Configurar as contas de serviço
Para permitir que os nós do GKE extraiam imagens de contêiner do Artifact Registry, conceda o papel Leitor do Artifact Registry (
roles/artifactregistry.reader) no projeto à conta de serviço padrão do Compute Engine usada pelos nós do 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"
Para permitir que os serviços do GKE consultem e gravem no BigQuery, publiquem no Pub/Sub e façam upload de gráficos para o Cloud Storage, conceda os papéis de Editor de dados do BigQuery (
roles/bigquery.dataEditor), Usuário de jobs do BigQuery (roles/bigquery.jobUser), Editor do Pub/Sub (roles/pubsub.publisher) e Administrador de objetos do Storage (roles/storage.objectAdmin) no projeto para a conta de serviço do Kubernetesdefaultno namespacedefault: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"
Ativar destinos do GKE
Para permitir que o Eventarc gerencie recursos no cluster do GKE, ative os destinos do GKE e vincule a conta de serviço do Eventarc aos papéis necessários.
Ative os destinos do GKE para o Eventarc:
gcloud eventarc gke-destinations init
No prompt para vincular os papéis necessários, digite
y.Os papéis a seguir estão vinculados:
roles/compute.viewerroles/container.developerroles/iam.serviceAccountAdmin
Criar um bucket do Cloud Storage
Crie um bucket do Cloud Storage na mesma região do serviço do GKE para salvar os gráficos e conceda à sua conta acesso de leitura (roles/storage.objectViewer) para visualizar os gráficos gerados:
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
Clonar o repositório
Clonar o repositório GitHub.
git clone https://github.com/GoogleCloudPlatform/eventarc-samples cd eventarc-samples/processing-pipelines
Criar uma conta de serviço e vincular papéis de acesso
Antes de criar os gatilhos do Eventarc, configure uma conta de serviço gerenciada pelo usuário e conceda a ela papéis específicos para que o Eventarc possa encaminhar eventos do Pub/Sub.
Crie uma conta de serviço chamada
eventarc-triggers-test-sa:TRIGGER_GSA=eventarc-triggers-test-sa gcloud iam service-accounts create $TRIGGER_GSA
Conceda os papéis
pubsub.subscriber,monitoring.metricWritereeventarc.eventReceiverà conta de serviço: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"
Implantar o serviço notificador
No diretório bigquery/notifier/python, implante um serviço do GKE que receba eventos de criação de gráficos e use o SendGrid para enviar links por e-mail aos gráficos gerados.
Crie e envie a imagem do contêiner:
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
Crie uma implantação do Kubernetes para a imagem do contêiner e defina as variáveis de ambiente necessárias, incluindo um endereço para enviar e-mails e a chave de API do 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}
Substitua:
EMAIL_ADDRESSpor um endereço de e-mail para enviar os links para os gráficos gerados.YOUR_SENDGRID_API_KEY: pela chave de API SendGrid que você anotou anteriormente.REPOSITORY: o nome do repositório do Artifact Registry
Exponha a implantação como um serviço do Kubernetes:
kubectl expose deployment ${SERVICE_NAME} \ --type=ClusterIP --port=80 --target-port=8080
Criar um gatilho para o serviço notificador
Crie um gatilho do Eventarc para o serviço de notificação implantado no
GKE que filtra registros de auditoria do Cloud Storage para o
bucket do Cloud Storage especificado e em que o methodName é
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
Isso gera um gatilho chamado trigger-notifier-gke.
Implantar o serviço criador de gráficos
No diretório bigquery/chart-creator/python, implante um serviço do GKE que receba eventos do executor de consultas, recupere dados de uma tabela do BigQuery de um país específico e gere um gráfico usando Matplotlib, dados. O upload do gráfico é feito para um bucket do Cloud Storage.
Crie e envie a imagem do contêiner:
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
Crie uma implantação do Kubernetes para a imagem do contêiner e defina a variável de ambiente
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}
Exponha a implantação como um serviço do Kubernetes:
kubectl expose deployment ${SERVICE_NAME} \ --type=ClusterIP --port=80 --target-port=8080
Criar um gatilho para o serviço criador de gráficos
Crie um gatilho do Eventarc para o serviço de criação de gráficos implantado no GKE que filtra mensagens publicadas em um tópico do Pub/Sub.
Crie o gatilho:
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
Isso cria um gatilho chamado
trigger-chart-creator-gke.Defina a variável de ambiente de tópico Pub/Sub.
export TOPIC_QUERY_COMPLETED=$(basename $(gcloud eventarc triggers describe trigger-${SERVICE_NAME}-gke --format='value(transport.pubsub.topic)'))
Implantar o serviço executor de consultas
No diretório processing-pipelines, implante um serviço do GKE que receba eventos do Cloud Scheduler, recupere dados de um conjunto de dados público da COVID-19 e salve os resultados em uma nova tabela do BigQuery.
Crie e envie a imagem do contêiner:
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
Crie uma implantação do Kubernetes para a imagem do contêiner e defina as variáveis de ambiente
PROJECT_IDeTOPIC_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}
Exponha a implantação como um serviço do Kubernetes:
kubectl expose deployment ${SERVICE_NAME} \ --type=ClusterIP --port=80 --target-port=8080
Criar um gatilho para o serviço executor de consultas
Crie um gatilho do Eventarc para o serviço executor de consultas implantado no GKE que filtra mensagens publicadas em um tópico do Pub/Sub.
Crie o gatilho:
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
Isso cria um gatilho chamado
trigger-query-runner-gke.Defina uma variável de ambiente para o tópico do Pub/Sub.
export TOPIC_QUERY_SCHEDULED=$(basename $(gcloud eventarc triggers describe trigger-${SERVICE_NAME}-gke --format='value(transport.pubsub.topic)'))
Programar os jobs
O pipeline de processamento é acionado por dois jobs do Cloud Scheduler. Crie dois jobs do Cloud Scheduler que publiquem em um tópico do Pub/Sub uma vez por dia:
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"
A programação é especificada no formato unix-cron.
Por exemplo, 0 16 * * * significa que os jobs são executados às 16h (16h) UTC todos os dias.
Executar o canal
Confirme a criação de todos os gatilhos:
gcloud eventarc triggers list
A saída será semelhante a esta:
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-central1Recupere os IDs dos jobs do Cloud Scheduler:
gcloud scheduler jobs list --location=$CLUSTER_LOCATION
A saída será semelhante a:
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 ENABLEDOs jobs estão programados para serem executados diariamente às 16h e às 17h, mas também é possível executar os jobs do Cloud Scheduler manualmente:
gcloud scheduler jobs run cre-scheduler-cy --location=$CLUSTER_LOCATION
gcloud scheduler jobs run cre-scheduler-uk --location=$CLUSTER_LOCATION
Após alguns minutos, confirme se há dois gráficos no bucket do Cloud Storage:
gcloud storage ls gs://${BUCKET}
A saída será semelhante a:
gs://PROJECT_ID-charts/chart-cyprus.png gs://PROJECT_ID-charts/chart-unitedkingdom.png
Parabéns! Você também receberá dois e-mails com links para os gráficos.
Limpar
Se você criou um novo projeto para este tutorial, exclua-o. Se você usou um projeto atual e quer mantê-lo sem as alterações incluídas neste tutorial, exclua os recursos criados para o tutorial.
Excluir um projeto do Google Cloud :
gcloud projects delete PROJECT_ID
Excluir recursos do tutorial
Exclua os serviços e as implantações do Kubernetes que você implantou neste tutorial e exclua o cluster do 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
Exclua todos os gatilhos do Eventarc criados neste tutorial:
gcloud eventarc triggers delete TRIGGER_NAME
Substitua
TRIGGER_NAMEpelo nome da sua Entrada.Exclua as imagens do 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
Exclua o repositório do Artifact Registry:
gcloud artifacts repositories delete REPOSITORY \ --location=$CLUSTER_LOCATION
Exclua o bucket com todos os objetos dentro dele:
gcloud storage rm --recursive gs://${BUCKET}/Exclua os jobs do Cloud Scheduler.
gcloud scheduler jobs delete cre-scheduler-cy --location=$CLUSTER_LOCATION gcloud scheduler jobs delete cre-scheduler-uk --location=$CLUSTER_LOCATION
Remova as configurações padrão da Google Cloud CLI adicionadas durante a configuração do tutorial:
gcloud config unset project gcloud config unset eventarc/location