Nesta página do tutorial, mostramos como implantar um serviço não autenticado do Cloud Run que recebe eventos usando o Pub/Sub.
Objetivos
Com este tutorial, você vai fazer o seguinte:
Implantar um serviço de receptor de eventos no Cloud Run
Criar um gatilho de eventos.
Publicar uma mensagem em um tópico do Pub/Sub para gerar um evento e visualizá-la nos registros do Cloud Run
Custos
Neste tutorial, usamos os seguintes componentes faturáveis do Google Cloud:
Para gerar uma estimativa de custo baseada na projeção de uso deste tutorial, 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 Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
-
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 verificar se o faturamento está ativado em um projeto.
-
Ative as APIs Cloud Run, Cloud Logging, Cloud Build, Pub/Sub, Eventarc.
-
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 verificar se o faturamento está ativado em um projeto.
-
Ative as APIs Cloud Run, Cloud Logging, Cloud Build, Pub/Sub, Eventarc.
- Instale e inicialize a Google Cloud CLI.
- Atualize os componentes da gcloud:
gcloud components update
- Faça login usando sua conta:
gcloud auth login
- Defina as variáveis de configuração usadas neste tutorial:
gcloud config set project PROJECT_ID gcloud config set run/region us-central1 gcloud config set run/platform managed gcloud config set eventarc/location us-central1
Em que PROJECT_ID é o ID do projeto do Google Cloud.
Implantar um receptor de eventos no Cloud Run
Implante um serviço do Cloud Run que recebe e registra eventos.
Para implantar o serviço de receptor de eventos de amostra:
Clone o repositório:
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git
Outra alternativa é fazer o download da amostra como um arquivo ZIP e extraí-lo.
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
Outra alternativa é fazer o download da amostra como um arquivo ZIP e extraí-lo.
Go
git clone https://github.com/GoogleCloudPlatform/golang-samples.git
Outra alternativa é fazer o download da amostra como um arquivo ZIP e extraí-lo.
Java
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
Outra alternativa é fazer o download da amostra como um arquivo ZIP e extraí-lo.
Ruby
git clone https://github.com/GoogleCloudPlatform/ruby-docs-samples.git
Outra alternativa é fazer o download da amostra como um arquivo ZIP e extraí-lo.
C#
git clone https://github.com/GoogleCloudPlatform/dotnet-docs-samples.git
Outra alternativa é fazer o download da amostra como um arquivo ZIP e extraí-lo.
Mude para o diretório que contém o código de amostra do Cloud Run:
Node.js
cd nodejs-docs-samples/eventarc/pubsub/
Python
cd python-docs-samples/eventarc/pubsub/
Go
cd golang-samples/eventarc/pubsub/
Java
cd java-docs-samples/eventarc/pubsub/
Ruby
cd ruby-docs-samples/eventarc/pubsub/
C#
cd dotnet-docs-samples/eventarc/pubsub/
Crie o contêiner e faça upload dele para o Cloud Build:
gcloud builds submit --tag gcr.io/$(gcloud config get-value project)/events-pubsub
Implante a imagem do contêiner no Cloud Run:
gcloud run deploy helloworld-events-pubsub-tutorial \ --image gcr.io/$(gcloud config get-value project)/events-pubsub \ --allow-unauthenticated
Quando você vir o URL do serviço, a implantação estará concluída.
Criar um gatilho do Eventarc
O gatilho de eventos envia mensagens para o serviço de receptor de eventos implantado no Cloud Run quando uma mensagem é publicada no tópico do Pub/Sub.
Para criar um gatilho do Eventarc no Pub/Sub:
Crie um gatilho para detectar mensagens do Pub/Sub:
Novo tópico pub/sub
gcloud eventarc triggers create events-pubsub-trigger \ --destination-run-service=helloworld-events-pubsub-tutorial \ --destination-run-region=us-central1 \ --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished"
Isso cria um novo tópico Pub/Sub e um gatilho para ele chamado
events-pubsub-trigger
.Tópico do Pub/Sub atual
gcloud eventarc triggers create events-pubsub-trigger \ --destination-run-service=helloworld-events-pubsub-tutorial \ --destination-run-region=us-central1 \ --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \ --transport-topic=projects/PROJECT_ID/topics/TOPIC_NAME
Substitua:
PROJECT_ID
é o ID do projeto no Google Cloud.TOPIC_NAME
é o nome do tópico atual do Pub/Sub;
Isso cria um gatilho chamado
events-pubsub-trigger
para o tópico atual do Pub/Sub.Confirme se o gatilho foi criado com sucesso:
gcloud eventarc triggers list --location=us-central1
Encontre e defina o tópico do Pub/Sub como uma variável de ambiente:
export RUN_TOPIC=$(gcloud eventarc triggers describe events-pubsub-trigger \ --format='value(transport.pubsub.topic)')
Envie uma mensagem para o tópico do Pub/Sub a fim de gerar um evento:
gcloud pubsub topics publish $RUN_TOPIC --message "Runner"
O evento é enviado ao serviço do Cloud Run, que registra a mensagem do evento.
Para ver a mensagem de evento, acesse os registros do serviço do Cloud Run:
- Acesse o Console do Google Cloud.
- Clique no serviço
helloworld-events-pubsub-tutorial
. Selecione a guia Registros.
Os registros podem demorar alguns instantes para aparecer. Se você não os vir imediatamente, verifique novamente após alguns instantes.
Procure a mensagem "Hello Runner!".
Limpeza
Se você criou um novo projeto para este tutorial, exclua o projeto. 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.
Exclua o projeto
O jeito mais fácil de evitar cobranças é excluir o projeto que você criou para o tutorial.
Para excluir o projeto:
- No Console do Google 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.
delete-tutorial-resources
Exclua o serviço do Cloud Run que você implantou neste tutorial:
gcloud run services delete SERVICE_NAME
SERVICE_NAME
é o nome escolhido do serviço.Também é possível excluir os serviços do Cloud Run no Console do Google Cloud.
Remova as configurações padrão do gcloud CLI que você adicionou durante a configuração do tutorial.
Exemplo:
gcloud config unset run/region
ou
gcloud config unset project
Exclua outros recursos do Google Cloud criados neste tutorial:
- Exclua o gatilho do Eventarc:
gcloud eventarc triggers delete TRIGGER_NAME
SubstituaTRIGGER_NAME
pelo nome do gatilho.
- Exclua a imagem de contêiner
denominada
gcr.io/PROJECT_ID/events-pubsub
do Container Registry.
- Exclua o gatilho do Eventarc: