Saiba como implantar um serviço no Cloud Run para Anthos no Google Cloud e criar e enviar eventos para esse serviço a partir do Pub/Sub.
Antes de começar
Para concluir esta tarefa, você precisa ter um agente de eventos e saber o namespace em que ele está sendo executado. Saiba como configurar eventos no Cloud Run for Anthos e criar um agente de eventos.
Se você tiver um agente de eventos ativo, execute o comando a seguir para ver o namespace do Kubernetes:
kubectl get brokers -n NAMESPACE
Como implantar um serviço receptor de eventos do Cloud Run for Anthos
Implantar um serviço do Cloud Run for Anthos que recebe eventos do agente de eventos.
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/pubsub
Java
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git cd java-docs-samples/eventarc/pubsub
Go
git clone https://github.com/GoogleCloudPlatform/golang-samples.git cd golang-samples/eventarc/pubsub
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git cd nodejs-docs-samples/eventarc/pubsub
C#
git clone https://github.com/GoogleCloudPlatform/dotnet-docs-samples.git 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)/CLOUD_RUN_CONTAINER_FILENAME
em que CLOUD_RUN_CONTAINER_FILENAME é o nome de arquivo do contêiner.
Para implantar a imagem de contêiner no Cloud Run for Anthos:
gcloud run deploy CLOUD_RUN_SERVICE_NAME \ --namespace=NAMESPACE \ --image gcr.io/$(gcloud config get-value project)/CLOUD_RUN_CONTAINER_NAME
em que NAMESPACE é o mesmo namespace do agente de eventos.
Quando o URL do serviço aparecer, significa que ele foi implantado corretamente.
Como criar um gatilho para o Pub/Sub
Crie um tópico do Pub/Sub:
gcloud pubsub topics create TOPIC_NAME
Crie um gatilho com
--parameters topic=
TOPIC_NAME e--target-service=
CLOUD_RUN_SERVICE_NAME:gcloud beta events triggers create TRIGGER_NAME \ --namespace NAMESPACE \ --target-service=CLOUD_RUN_SERVICE_NAME \ --type=google.cloud.pubsub.topic.v1.messagePublished \ --source=CloudPubSubSource \ --parameters topic=TOPIC_NAME
em que NAMESPACE é o mesmo namespace do agente de eventos, TOPIC-NAME é o nome do tópico do Pub/Sub que você criou e CLOUD_RUN_SERVICE_NAME é o nome do serviço receptor de evento no Cloud Run for Anthos.
Opcional Verifique se o gatilho está operacional usando a ferramenta de linha de comando
gcloud
:gcloud beta events triggers list \ --target-service 'CLOUD_RUN_SERVICE_NAME' \ --namespace NAMESPACE
em que NAMESPACE é o mesmo namespace que seu agente de eventos.
A resposta será semelhante a:
TRIGGER EVENT TYPE TARGET trigger-name google.cloud.pubsub.topic.v1.messagePublished cloud-run-service
Como gerar um evento
Publique uma mensagem no tópico do Pub/Sub:
gcloud pubsub topics publish TOPIC_NAME \ --message "World"
Verifique o evento publicado observando os registros do serviço de recebimento do Cloud Run para Anthos:
kubectl logs \ --selector serving.knative.dev/service=CLOUD_RUN_SERVICE_NAME \ -c user-container \ -n NAMESPACE \ --tail=100
em que NAMESPACE é o mesmo namespace que seu agente de eventos.
Nos registros, você encontrará uma entrada semelhante a esta:
Hello World! ID: 961750303502725
Limpeza
Exclua os recursos criados neste tutorial para evitar cobranças recorrentes.
Exclua o gatilho e digite:
gcloud beta events triggers delete TRIGGER-NAME \ --namespace NAMESPACE
em que NAMESPACE é o mesmo namespace que seu agente de eventos.