Como receber um evento do Pub/Sub

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:

  1. Implantar um serviço de receptor de eventos no Cloud Run

  2. Criar um gatilho de eventos.

  3. 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, há componentes faturáveis do Google Cloud, entre eles:

Use a calculadora de preços para gerar uma estimativa de custo com base no uso previsto.

Novos usuários do Google Cloud podem estar qualificados para uma avaliação gratuita.

Antes de começar

  1. 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.
  2. No Console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  3. Verifique se o faturamento está ativado para seu projeto na nuvem. Saiba como confirmar se o faturamento está ativado para o projeto.

  4. Ative as APIs Cloud Run, Cloud Logging, Cloud Build, Pub/Sub, Eventarc.

    Ative as APIs

  5. Instale e inicie o SDK do Cloud.
  6. Atualize os componentes da gcloud:
    gcloud components update
  7. Faça login usando sua conta:
    gcloud auth login
  8. 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.

Como 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:

  1. 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.

  2. 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/
  3. 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
    
  4. 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.

Como 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:

  1. 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.

  2. Confirme se o gatilho foi criado com sucesso:

    gcloud eventarc triggers list --location=us-central1
    
  3. 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)')
    
  4. 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.

  5. Para ver a mensagem de evento, acesse os registros do serviço do Cloud Run:

    1. Acesse o Console do Google Cloud
    2. Clique no serviço helloworld-events-pubsub-tutorial.
    3. 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.

  6. 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.

Como excluir o projeto

O jeito mais fácil de evitar cobranças é excluindo o projeto que você criou para o tutorial.

Para excluir o projeto:

  1. No Console do Cloud, acesse a página Gerenciar recursos:

    Acessar "Gerenciar recursos"

  2. Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir .
  3. Na caixa de diálogo, digite o ID do projeto e clique em Encerrar para excluí-lo.

Como excluir recursos do tutorial

  1. 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.

  2. Remova as configurações padrão da gcloud que você adicionou durante a configuração do tutorial.

    Remova a configuração da região:

     gcloud config unset run/region
    
  3. Remova a configuração do projeto:

     gcloud config unset project
    
  4. Exclua outros recursos do Google Cloud criados neste tutorial:

    • Exclua o gatilho:
      gcloud eventarc triggers delete TRIGGER_NAME
      
      Substitua TRIGGER_NAME pelo nome da sua Entrada.

A seguir