Nesta página, mostramos como configurar eventos no Cloud Run for Anthos e receber eventos do Cloud Storage.
Neste guia de início rápido, você fará as seguintes tarefas:
- Criar um cluster do GKE e ativar o Cloud Run for Anthos no Google Cloud.
- Inicializar eventos do Cloud Run for Anthos.
- Criar um agente de eventos para rotear eventos da origem para o receptor.
- Implantar um serviço do Cloud Run for Anthos que recebe eventos.
- Configurar o Cloud Storage para gerar eventos.
- Gerar e visualizar um evento.
Antes de começar
-
Faça login na sua conta do Google.
Se você ainda não tiver uma, inscreva-se.
-
No Console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.
-
Verifique se o faturamento está ativado para seu projeto na nuvem. Saiba como confirmar se o faturamento está ativado para o projeto.
- Instale e inicialize o SDK do Cloud..
- Verifique se você está usando a
versão mais recente da
ferramenta de linha de comando
gcloud
. - Defina a ferramenta de linha de comando
gcloud
para usar seu projeto do GCP:gcloud config set project PROJECT-ID
- Instale os componentes Beta da ferramenta de linha de comando
gcloud
:gcloud components install beta
- Ative os serviços usados neste guia de início rápido:
gcloud services enable cloudapis.googleapis.com gcloud services enable container.googleapis.com gcloud services enable containerregistry.googleapis.com gcloud services enable cloudbuild.googleapis.com
- Defina as variáveis de configuração da ferramenta de linha de comando
gcloud
:gcloud config set run/cluster events-cluster gcloud config set run/cluster_location us-central1 gcloud config set run/platform gke
- Opcional: é possível verificar os parâmetros de configuração usando a ferramenta de linha de comando
gcloud
. Basta digitar:gcloud config list
A resposta será semelhante a:
[run] cluster = events-cluster cluster_location = us-central1 platform = gke
Como criar um cluster do GKE com o Cloud Run for Anthos ativado
Para criar um cluster do Google Kubernetes Engine para o Cloud Run for Anthos com os complementos
CloudRun
,HttpLoadBalancing
eHorizontalPodAutoscaling
ativados: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=stable
Aguarde alguns minutos para que a criação do cluster seja concluída. Durante o processo de criação, talvez você veja avisos que podem ser ignorados com segurança. Quando a criação do cluster for concluída, a resposta será semelhante a esta:
Creating cluster events-cluster...done. Created [https://container.googleapis.com/v1beta1/ \ projects/my-project/zones/us-central1/clusters/events-cluster].
em que
my-project
é o ID do projeto. Você acabou de criar um novo cluster do Google Kubernetes Engine chamadoevents-cluster
no projetomy-project
.
Como inicializar eventos do Cloud Run for Anthos
Para inicializar eventos do Cloud Run for Anthos:
Inicialize eventos do Cloud Run for Anthos usando a ferramenta de linha de comando
gcloud
:gcloud beta events init --platform gke
Quando solicitado, selecione
events-cluster
como o cluster do GKE.Insira
Y
em todas as solicitações que pedem para criar contas de serviço, vinculá-las a papéis específicos, gerar novas chaves e ativar os serviços necessários.
Isso cria pods em dois namespaces do Kubernetes chamados
cloud-run-events
eknative-eventing
.Opcional: verifique se a criação do pod foi bem-sucedida:
kubectl get pods -n cloud-run-events
A resposta será semelhante a:
NAME READY STATUS RESTARTS AGE controller-9cc679b67-2952n 1/1 Running 0 22s webhook-8576c4cfcb-dhz82 1/1 Running 0 16m
Para verificar os pods do namespace
knative-eventing
, digite:kubectl get pods -n knative-eventing
A resposta será semelhante a:
NAME READY STATUS RESTARTS AGE eventing-controller-77f46f6cf8-kj9ck 1/1 Running 0 17m eventing-webhook-5bc787965f-hcmwg 1/1 Running 0 17m
Como criar um agente de eventos
No Cloud Run for Anthos, os agentes encaminham os eventos da origem para um serviço de destino. Neste guia de início rápido, você criará um agente que encaminhará eventos do Cloud Storage para um serviço do Cloud Run for Anthos.
Para criar um agente:
Crie um namespace
events
:kubectl create namespace events
Inicialize o namespace com o secret padrão:
gcloud beta events namespaces init events \ --copy-default-secret
Crie o agente de eventos:
gcloud beta events brokers create default \ --namespace events
Opcional: depois de alguns minutos, verifique o status do agente executando:
kubectl get brokers \ -n events
Como implantar um serviço do Cloud Run for Anthos para receber eventos
Implantar um serviço do Cloud Run for Anthos que recebe eventos do agente e os registra.
Para implantar o serviço Cloud Run for Anthos:
Para clonar o repositório:
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
Para criar o contêiner e fazer o upload dele no Cloud Build:
gcloud builds submit \ --tag gcr.io/$(gcloud config get-value project)/events-quickstart-container
Para implantar a imagem de contêiner no Cloud Run for Anthos:
gcloud run deploy events-quickstart-receiver \ --namespace=events \ --image gcr.io/$(gcloud config get-value project)/events-quickstart-container
Quando o URL do serviço aparecer, significa que ele foi implantado.
Como configurar o Cloud Storage
O Cloud Storage gera eventos quando há alterações no bucket de armazenamento e os envia ao agente de eventos. Para configurar o Cloud Storage, siga estas etapas:
Crie um bucket do Cloud Storage usando a ferramenta de linha de comando
gsutil
:gsutil mb \ -p $(gcloud config get-value project) \ -l us-central1 \ gs://"events-quickstart-$(gcloud config get-value project)"
Neste exemplo, o bucket do Cloud Storage é criado na região us-central1.
Recupere a conta de serviço do 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"
Conceda os direitos de publicação na conta de serviço do Cloud Storage ao Pub/Sub:
gcloud projects add-iam-policy-binding $(gcloud config get-value project) \ --member=serviceAccount:CLOUD-STORAGE-SERVICE-ACCOUNT \ --role roles/pubsub.publisher
Como criar um gatilho do Cloud Storage
Ao criar um gatilho, é necessário especificar o serviço do Cloud Run for Anthos que recebe eventos do Cloud Storage.
Para criar o gatilho do 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)
Isso cria um gatilho para o bucket
events-quickstart-bucket
do Cloud Storage.Opcional: execute o seguinte comando para verificar o status do gatilho:
gcloud beta events triggers list \ --namespace=events
A criação do gatilho está completa e pronta, mas o processo pode levar até 10 minutos para propagar e filtrar os eventos do Cloud Storage.
Como gerar e ver um evento
Para gerar um evento, crie um arquivo de texto com o nome
random.txt
contendo o texto "Hello World" e faça upload dele no Cloud Storage usando a ferramenta de linha de comandogsutil
.echo "Hello World" > random.txt gsutil cp random.txt gs://events-quickstart-$(gcloud config get-value project)/random.txt
O upload gera um evento e o serviço do Cloud Run for Anthos registra a mensagem do evento.
Para ver a mensagem no Cloud Logging:
Parabéns! Você implantou os eventos do Cloud Run for Anthos, acionou um evento e registrou o conteúdo dele.
Limpeza
Para interromper o faturamento de todos os recursos usados no projeto de teste do Cloud, exclua o projeto:
- No Console do Cloud, acesse a página Gerenciar recursos:
- Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir .
- Na caixa de diálogo, digite o ID do projeto e clique em Encerrar para excluí-lo.