Como acionar fluxos de trabalho com o Eventarc

1. Visão geral

Neste laboratório, você vai criar um gatilho do Eventarc que conecta um tópico do Pub/Sub ao serviço Workflows. O Eventarc permite desacoplar a comunicação entre serviços, tornando sua solução mais extensível e orientada a eventos. Você vai criar um fluxo de trabalho com várias etapas para executar um processo de negócios e calcular os pontos de recompensa dos clientes por fazerem pedidos na Cymbal Eats. O fluxo de trabalho chamará uma API de serviço particular do Cloud Run para executar a lógica de negócios. O serviço Cloud Run está configurado para permitir apenas tráfego interno e requer autenticação. O fluxo de trabalho publicará uma mensagem no tópico do Pub/Sub para notificar o serviço de pedidos sobre os pontos de recompensa calculados.

c6d4337a47b55333.png

O que é o Eventarc?

O Eventarc permite que você crie arquiteturas orientadas a eventos sem precisar implementar, personalizar ou manter a infraestrutura subjacente. O Eventarc oferece uma solução padronizada para gerenciar o fluxo de alterações de estado, chamadas de eventos, entre microsserviços separados. Quando acionado, o Eventarc encaminha esses eventos usando assinaturas do Pub/Sub para vários destinos (por exemplo, Workflows ou Cloud Run) enquanto gerencia a entrega, a segurança, a autorização, a observabilidade e o tratamento de erros para você.

Provedores de eventos do Google

  • Mais de 90 provedores do Google Cloud. Esses provedores enviam eventos diretamente da origem (Cloud Storage, por exemplo) ou pelas entradas dos Registros de auditoria do Cloud.
  • provedores do Pub/Sub. Esses provedores enviam eventos ao Eventarc usando mensagens do Pub/Sub.

Provedores terceirizados

Provedores terceirizados são entidades que não são do Google que oferecem uma fonte do Eventarc.

Acionadores do Eventarc

  • Eventos do Cloud Pub/Sub. O Eventarc pode ser acionado por mensagens publicadas em tópicos do Pub/Sub.
  • Eventos de Registros de auditoria do Cloud (CAL). Os Registros de auditoria do Cloud fornecem registros de auditoria de atividade do administrador e acesso a dados para cada projeto, pasta e organização do Cloud.
  • Eventos diretos. O Eventarc pode ser acionado por vários eventos diretos, como uma atualização de um bucket do Cloud Storage ou de um modelo da Configuração remota do Firebase.

Destinos de evento

  • Fluxos de trabalho
  • Cloud Run
  • GKE
  • Cloud Functions( 2nd gen)

c7ca054200edf1b3.png

O que é o Workflows?

O Workflows é um serviço totalmente gerenciado que permite integrar microsserviços, tarefas e APIs. O Workflows é um serviço sem servidor e será escalonado para atender à sua demanda.

Casos de uso dos fluxos de trabalho:

  • Fluxos de trabalho orientados por eventos são executados em acionadores definidos. Por exemplo, quando um novo pedido é enviado e você quer calcular os pontos de fidelidade do cliente. Ou, quando um pedido é cancelado, o evento pode ser publicado e todos os serviços interessados o processarão.
  • Os fluxos de trabalho de jobs em lote executam jobs regularmente usando o Cloud Scheduler. Por exemplo, um job noturno para verificar se há itens de menu com status de falha e excluí-los.

O Workflows é ideal para fluxos de trabalho que orquestram serviços. É possível automatizar processos que incluem espera e novas tentativas por até um ano.

Benefícios do Workflows:

  • Configuração sobre código:reduza o débito técnico movendo a lógica para a configuração, em vez de escrever código.
  • Simplifique sua arquitetura. Os fluxos de trabalho com estado permitem visualizar e monitorar integrações de serviços complexas sem outras dependências.
  • Incorporar confiabilidade e tolerância a falhas. Controle as falhas com lógica de repetição padrão ou personalizada e tratamento de erros, mesmo quando outros sistemas falharem, marcando cada etapa para o Cloud Spanner para ajudar você a acompanhar o progresso.
  • Manutenção zero. Escalone conforme necessário: não é necessário corrigir nem manter nada. Pague somente quando seus fluxos de trabalho forem executados, sem custo enquanto você aguarda ou está inativo.

Neste laboratório, você vai configurar um fluxo de trabalho orientado por eventos.

O que você vai aprender

Você vai aprender a:

  • Configurar o tópico do Pub/Sub e o Eventarc para acionar fluxos de trabalho
  • Configurar o fluxo de trabalho para chamar o serviço do Cloud Run e publicar mensagens no Pub/Sub
  • Como consultar registros estruturados do Workflows no Cloud Logging e usar a gcloud CLI.

Pré-requisitos

  • Para fazer este laboratório, é preciso ter familiaridade com o console do Cloud e os ambientes do Cloud Shell.
  • Ter experiência anterior com o Cloud Run e o Cloud Pub/Sub é útil, mas não é obrigatório.

2. Configuração e requisitos

Configuração do projeto do Google Cloud

  1. Faça login no Console do Google Cloud e crie um novo projeto ou reutilize um existente. Crie uma conta do Gmail ou do Google Workspace, se ainda não tiver uma.

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

bd84a6d3004737c5.png

  • O Nome do projeto é o nome de exibição para os participantes do projeto. É uma string de caracteres não usada pelas APIs do Google Você pode atualizar a qualquer momento.
  • O ID do projeto precisa ser exclusivo em todos os projetos do Google Cloud e não pode ser mudado após a definição. O console do Cloud gera automaticamente uma string exclusiva. normalmente você não se importa com o que seja. Na maioria dos codelabs, é necessário fazer referência ao ID do projeto, que normalmente é identificado como PROJECT_ID. Se você não gostar do ID gerado, poderá gerar outro ID aleatório. Como alternativa, você pode tentar o seu próprio e ver se ele está disponível. Ela não pode ser alterada após essa etapa e permanecerá durante a duração do projeto.
  • Para sua informação, há um terceiro valor, um Número de projeto, que algumas APIs usam. Saiba mais sobre esses três valores na documentação.
  1. Em seguida, ative o faturamento no console do Cloud para usar os recursos/APIs do Cloud. A execução deste codelab não será muito cara, se tiver algum custo. Para encerrar os recursos e não gerar faturamento além deste tutorial, exclua os recursos criados ou exclua o projeto inteiro. Novos usuários do Google Cloud estão qualificados para o programa de US$ 300 de avaliação sem custos.

Configuração do ambiente

Ative o Cloud Shell clicando no ícone à direita da barra de pesquisa.

eb0157a992f16fa3.png

Clone o repositório, acesse o diretório, copie e cole o comando abaixo no terminal e pressione Enter:

git clone https://github.com/GoogleCloudPlatform/cymbal-eats.git && cd cymbal-eats/customer-service

Implante as dependências necessárias executando lab-setup.sh.

Os seguintes recursos serão criados:

  • Cluster e instância do AlloyDB
  • Artifact Registry para armazenar imagens de contêiner para o job do Cloud Run e o atendimento ao cliente
  • Conector de acesso VPC para o serviço e o job do Cloud Run para se comunicar com o banco de dados AlloyDB
  • Job do Cloud Run para criar o banco de dados do AlloyDB
  • Atendimento ao cliente Cloud Run: microsserviço baseado em Java que usa o framework Quarkus (em inglês).
./lab-setup.sh

Se for preciso autorizar, clique em "Autorizar" para continuar.

6356559df3eccdda.png

A configuração levará cerca de 10 minutos.

Aguarde a conclusão do script e a saída abaixo antes de executar outras etapas.

Deploying container to Cloud Run service [customer-service] in project [cymbal-eats-19227-5681] region [us-east1]
OK Deploying new service... Done.                                                   
  OK Creating Revision...
  OK Routing traffic...
Done.
Service [customer-service] revision [customer-service-00001-mid] has been deployed and is serving 100 percent of traffic.
Service URL: https://customer-service-e4p5zon5rq-ue.a.run.app

Você pode explorar a próxima seção e depois voltar para retomar da próxima etapa.

3. Fluxo de trabalho de revisão

Conceitos principais do Workflows

Um fluxo de trabalho consiste em uma série de etapas descritas usando a sintaxe do Workflows( YAML ou JSON).

Depois que um fluxo de trabalho é criado, ele é implantado, o que o deixa pronto para execução.

Uma execução é uma única execução da lógica contida na definição de um fluxo de trabalho. Um fluxo de trabalho que não foi executado não gera cobranças. Todas as execuções de fluxo de trabalho são independentes, e o escalonamento rápido do produto permite um alto número de execuções simultâneas.

Controles de execução

  • Etapas: para criar um fluxo de trabalho, defina o steps desejado e a ordem de execução usando a sintaxe do Workflows. Todo fluxo de trabalho precisa ter pelo menos uma etapa.
  • Condições: é possível usar um bloco switch como mecanismo de seleção que permite que o valor de uma expressão controle o fluxo de execução de um fluxo de trabalho.
  • Iterações: use uma repetição for para iterar em uma sequência de números ou em uma coleção de dados, como uma lista ou um mapa.
  • Subfluxos de trabalho: funcionam de maneira semelhante a uma rotina ou função em uma linguagem de programação, permitindo encapsular uma etapa ou um conjunto de etapas que seu fluxo de trabalho repetirá várias vezes.

Como acionar execuções

  • Manual: é possível gerenciar fluxos de trabalho no console do Google Cloud ou na linha de comando usando a CLI do Google Cloud.
  • Programática: as bibliotecas de cliente do Cloud para a API Workflows ou a API REST podem ser usadas para gerenciar fluxos de trabalho.
  • Programado: é possível usar o Cloud Scheduler para executar um fluxo de trabalho em uma programação específica.

Argumentos do ambiente de execução

Para acessar os dados transmitidos no momento da execução, adicione um campo params ao seu fluxo de trabalho principal (colocado em um bloco principal). O bloco principal aceita um único argumento, que é qualquer tipo de dados JSON válido. O campo "params" nomeia a variável que o fluxo de trabalho usa para armazenar os dados transmitidos.

Fluxo de trabalho para a autenticação do serviço do Cloud Run

O atendimento ao cliente é um aplicativo de amostra incluído neste repositório, executado no Cloud Run e configurado para permitir solicitações autenticadas apenas de redes internas. Você vai configurar o Workflows para adicionar um token do OpenID Connect(OIDC) assinado pelo Google à solicitação para autenticar com o serviço do Cloud Run.

Analise a documentação para saber mais sobre a autenticação de serviço a serviço.

A autenticação do fluxo de trabalho é configurada no bloco args usando a seção auth.

rewardsWorkflow.yaml.tmpl

   - create_customer:
        call: http.post
        args:
          url: CUSTOMER_SERVICE_URL/customer
          auth:
            type: OIDC

Lógica do fluxo de trabalho

Se um cliente não existir, o fluxo de trabalho vai fazer uma chamada de API para criar um cliente e depois atualizar os pontos de recompensa. Com base no valor total do pedido, o fluxo de trabalho seleciona um multiplicador para calcular os pontos de recompensa para o cliente. Confira o exemplo abaixo para mais detalhes.

  - calculate_multiplier:
        switch:
          - condition: ${totalAmount < 10}
            steps:
              - set_multiplier1:
                  assign:
                    - multiplier: 2
          - condition: ${totalAmount >= 10 and totalAmount < 25}
            steps:
              - set_multiplier2:
                  assign:
                    - multiplier: 3
          - condition: ${totalAmount >= 25}
            steps:
              - set_multiplier3:
                  assign:
                    - multiplier: 5
    - calculate_rewards:
        assign:
            - rewardPoints: ${customerRecord.rewardPoints * multiplier}

fcd91b2bc5d60347.png

4. Configurar e implantar o fluxo de trabalho

Configurar as variáveis de ambiente:

export REGION=us-east1

export CUSTOMER_SERVICE_URL=$(gcloud run services describe customer-service \
  --platform managed \
  --region $REGION \
  --format=json | jq \
  --raw-output ".status.url")

echo $CUSTOMER_SERVICE_URL

Substitua o URL de serviço no modelo do fluxo de trabalho:

sed "s@CUSTOMER_SERVICE_URL@$CUSTOMER_SERVICE_URL@g" rewardsWorkflow.yaml.tmpl > rewardsWorkflow.yaml

Defina o local do serviço do Workflows e das variáveis de ambiente do projeto:

gcloud config set workflows/location ${REGION}

export PROJECT_ID=$(gcloud config get-value project)
export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)')
export PROJECT_NAME=$(gcloud projects describe $PROJECT_ID --format='value(name)')

Crie uma conta de serviço personalizada para o fluxo de trabalho com as seguintes permissões:

  • Invocar o serviço do Cloud Run
  • APIs de registro de chamadas
  • Publicar mensagens no tópico do PubSub
export WORKFLOW_SERVICE_ACCOUNT=workflows-cloudrun-sa

gcloud iam service-accounts create ${WORKFLOW_SERVICE_ACCOUNT}

gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member "serviceAccount:${WORKFLOW_SERVICE_ACCOUNT}@$PROJECT_ID.iam.gserviceaccount.com" \
  --role "roles/run.invoker"

gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member "serviceAccount:${WORKFLOW_SERVICE_ACCOUNT}@$PROJECT_ID.iam.gserviceaccount.com" \
  --role "roles/logging.logWriter"

gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member "serviceAccount:${WORKFLOW_SERVICE_ACCOUNT}@$PROJECT_ID.iam.gserviceaccount.com" \
  --role "roles/pubsub.publisher"

Implantar fluxo de trabalho. O fluxo de trabalho é configurado para usar a conta de serviço criada na etapa anterior:

export WORKFLOW_NAME=rewardsWorkflow

gcloud workflows deploy ${WORKFLOW_NAME} \
  --source=rewardsWorkflow.yaml \
  --service-account=${WORKFLOW_SERVICE_ACCOUNT}@$PROJECT_ID.iam.gserviceaccount.com

Revise a origem do fluxo de trabalho e outros detalhes(guia "Gatilhos"). No momento, não há acionadores configurados para executar esse fluxo de trabalho. Você vai configurar isso na próxima etapa.

d3527393fb07a9b3.png

5. Configurar tópicos do Pub/Sub e o gatilho do Eventarc

Em seguida, você vai criar dois tópicos do Pub/Sub e configurar um gatilho do Eventarc.

O Serviço de Pedidos vai publicar mensagens em order-topic com informações sobre novos pedidos.

O fluxo de trabalho publicará mensagens em order-points-topic com informações sobre os pontos de recompensa do pedido e o valor total. O serviço de pedidos(parte não implantada deste laboratório) expõe um endpoint usado pela assinatura push de order-points-topic, para atualizar os pontos de recompensa e o valor total por pedido.

Crie novos tópicos do Pub/Sub:

export TOPIC_ID=order-topic
export ORDER_POINTS_TOPIC_ID=order-points-topic
gcloud pubsub topics create $TOPIC_ID --project=$PROJECT_ID
gcloud pubsub topics create $ORDER_POINTS_TOPIC_ID --project=$PROJECT_ID

Defina o local do serviço do Eventarc:

gcloud config set eventarc/location ${REGION}

Crie uma conta de serviço personalizada que será usada pelo gatilho do Eventarc para executar fluxos de trabalho.

export TRIGGER_SERVICE_ACCOUNT=eventarc-workflow-sa

gcloud iam service-accounts create ${TRIGGER_SERVICE_ACCOUNT}

Conceda acesso à conta de serviço para executar fluxos de trabalho.

gcloud projects add-iam-policy-binding ${PROJECT_ID} \
  --member="serviceAccount:${TRIGGER_SERVICE_ACCOUNT}@${PROJECT_ID}.iam.gserviceaccount.com" \
  --role="roles/workflows.invoker"

Criar um gatilho do Eventarc para detectar mensagens do Pub/Sub e entregá-las ao Workflows.

gcloud eventarc triggers create new-orders-trigger \
  --destination-workflow=${WORKFLOW_NAME} \
  --destination-workflow-location=${REGION} \
  --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \
  --service-account="${TRIGGER_SERVICE_ACCOUNT}@${PROJECT_ID}.iam.gserviceaccount.com" \
  --transport-topic=$TOPIC_ID

Exemplo de resposta:

Creating trigger [new-orders-trigger] in project [qwiklabs-gcp-01-1a990bfcadb3], location [us-east1]...done.     
Publish to Pub/Sub topic [projects/qwiklabs-gcp-01-1a990bfcadb3/topics/order-topic] to receive events in Workflow [rewardsWorkflow].
WARNING: It may take up to 2 minutes for the new trigger to become active.

Revise o acionador do Eventarc criado.

bda445561ad5f4.png

Analise a assinatura criada para o acionador.

3fccdda7d5526597.png

Analisar as mudanças no fluxo de trabalho. Um novo acionador foi adicionado.

23d338abc16eaac8.png

6. Fluxo de trabalho de teste

c6d4337a47b55333.png

Para simular o serviço de pedidos, envie mensagens para o tópico do Pub/Sub pelo Cloud Shell e verifique os registros do atendimento ao cliente do Cloud Run no console do Cloud.

export TOPIC_ID=order-topic
gcloud pubsub topics publish $TOPIC_ID --message '{"userId":"id1","orderNumber":123456,"name":"Angela Jensen","email":"ajensen9090+eats@gmail.com","address":"1845 Denise St","city":"Mountain View","state":"CA","zip":"94043","orderItems":[{"id":7,"createDateTime":"2022-03-17T21:51:44.968584","itemImageURL":"https://images.unsplash.com/photo-1618449840665-9ed506d73a34?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=687&q=80","itemName":"Curry Plate","itemPrice":12.5,"itemThumbnailURL":"https://images.unsplash.com/photo-1618449840665-9ed506d73a34?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=687&q=80","spiceLevel":0,"status":"Ready","tagLine":"Spicy touch for your taste buds","updateDateTime":"2022-03-18T01:30:29.340584","inventory":8,"quantity":1}]}'

Exemplo de resposta:

messageIds:
- '5063709859203105'

Revise os detalhes e os registros de execução do fluxo de trabalho.

1e802826c700cc3e.png

aad0eae7a970316.png

7. Geração de registros estruturados de fluxo de trabalho

O fluxo de trabalho está configurado para gravar registros estruturados no formato JSON. Os registros são gravados usando a API Cloud Logging, o recurso workflows.googleapis.com/Workflow e com o nome de registro projects/${PROJECT_ID}/logs/Workflows.

Revise a configuração da geração de registros abaixo.

    - log_totalAmount:
        call: sys.log
        args:
            json:
              orderNumber: ${order.orderNumber}
              totalAmount: ${totalAmount}
              multiplier: ${multiplier}
              totalRewardPoints: ${rewardPoints}
              orderRewardPoints: ${orderRewardPoints}
            severity: INFO

Abra a Análise de registros no console e execute uma consulta para pedidos processados com um valor total superior a US $2.

Use a consulta abaixo, substituindo o ID do projeto(qwiklabs-gcp-01-1a990bfcadb3) pelo ID do projeto atual:

resource.type="workflows.googleapis.com/Workflow" AND 
logName=projects/qwiklabs-gcp-01-1a990bfcadb3/logs/Workflows AND 
jsonPayload.totalAmount > 2 AND 
timestamp >= "2022-11-01T23:59:59Z" AND 
timestamp <= "2023-11-05T00:00:00Z"

Exemplo de resposta:

22d2f4686c58724d.png

Abra o Cloud Shell e use a CLI gcloud para ler registros com os comandos abaixo.

Substitua o ID do projeto(qwiklabs-gcp-01-1a990bfcadb3) pelo ID do projeto atual.

gcloud logging read 'resource.type="workflows.googleapis.com/Workflow" AND logName=projects/qwiklabs-gcp-01-1a990bfcadb3/logs/Workflows AND jsonPayload.totalAmount > 2 AND timestamp >= "2022-11-01T23:59:59Z" AND timestamp <= "2023-11-05T00:00:00Z"' --limit 10 --format="table(jsonPayload.orderNumber,jsonPayload.totalAmount,jsonPayload.orderRewardPoints,jsonPayload.totalRewardPoints,jsonPayload.multiplier)"

Exemplo de saída usando o formato table:

35d5fd851ecde60.png

Substitua o ID do projeto(qwiklabs-gcp-01-1a990bfcadb3) pelo ID do projeto atual.

gcloud logging read 'resource.type="workflows.googleapis.com/Workflow" AND logName=projects/qwiklabs-gcp-01-1a990bfcadb3/logs/Workflows AND jsonPayload.totalAmount > 2 AND timestamp >= "2022-11-01T23:59:59Z" AND timestamp <= "2023-11-05T00:00:00Z"' --limit 10 --format=json | jq

Exemplo de saída usando o formato json:

ac7421548ea9a9f2.png

8. Analisar os registros do cliente

(Etapas opcionais) No momento, o customer-service está configurado para aceitar tráfego apenas de redes internas.

Execute os comandos abaixo para salvar o URL do serviço e chamar o atendimento ao cliente.

export REGION=us-east1
CUSTOMER_SERVICE_URL=$(gcloud run services describe customer-service \
    --region=$REGION \
    --format=json | jq \
    --raw-output ".status.url")

curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" $CUSTOMER_SERVICE_URL/customer

Você vai receber uma mensagem de erro informando que o acesso foi proibido.

<html><head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>403 Forbidden</title>
</head>
<body text=#000000 bgcolor=#ffffff>
<h1>Error: Forbidden</h1>
<h2>Access is forbidden.</h2>
<h2></h2>
</body></html>

Para acessar os registros atuais dos clientes, altere as configurações de entrada de customer-service do Cloud Run para "Allow all traffic" e clique em "Salvar".

Isso tornará o endpoint público e você poderá chamar a API Customer Service pelo Cloud Shell usando curl.

9156e0eb0a19bc68.png

Execute os comandos abaixo para salvar o URL do serviço e listar os clientes atuais.

CUSTOMER_SERVICE_URL=$(gcloud run services describe customer-service \
    --region=$REGION \
    --format=json | jq \
    --raw-output ".status.url")

curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" $CUSTOMER_SERVICE_URL/customer | jq

Exemplo de resposta:

[
  {
    "id": "id1",
    "rewardPoints": 3,
    "address": "1845 Denise St",
    "city": "Mountain View",
    "createDateTime": "2022-11-11T15:56:45.487566",
    "email": "ajensen9090+eats@gmail.com",
    "name": "Angela Jensen",
    "state": "CA",
    "updateDateTime": "2022-11-11T15:56:45.866125",
    "zip": "94043"
  }
]

Execute um comando para publicar um novo pedido várias vezes e verificar os pontos de recompensa do cliente com o comando curl.

Publicar nova mensagem do pedido:

export TOPIC_ID=order-topic
gcloud pubsub topics publish $TOPIC_ID --message '{"userId":"id1","orderNumber":123456,"name":"Angela Jensen","email":"ajensen9090+eats@gmail.com","address":"1845 Denise St","city":"Mountain View","state":"CA","zip":"94043","orderItems":[{"id":7,"createDateTime":"2022-03-17T21:51:44.968584","itemImageURL":"https://images.unsplash.com/photo-1618449840665-9ed506d73a34?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=687&q=80","itemName":"Curry Plate","itemPrice":12.5,"itemThumbnailURL":"https://images.unsplash.com/photo-1618449840665-9ed506d73a34?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=687&q=80","spiceLevel":0,"status":"Ready","tagLine":"Spicy touch for your taste buds","updateDateTime":"2022-03-18T01:30:29.340584","inventory":8,"quantity":1}]}'

Verifique os pontos de recompensa do cliente:

curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" $CUSTOMER_SERVICE_URL/customer | jq

Verifique os registros. Substitua o ID do projeto(qwiklabs-gcp-01-1a990bfcadb3) pelo ID do projeto atual.

gcloud logging read 'resource.type="workflows.googleapis.com/Workflow" AND logName=projects/qwiklabs-gcp-01-1a990bfcadb3/logs/Workflows AND jsonPayload.totalAmount > 2 AND timestamp >= "2022-11-01T23:59:59Z" AND timestamp <= "2023-11-05T00:00:00Z"' --limit 10 --format="table(jsonPayload.orderNumber,jsonPayload.totalAmount,jsonPayload.orderRewardPoints,jsonPayload.totalRewardPoints,jsonPayload.multiplier)"

9. Parabéns!

Parabéns, você concluiu o codelab.

O que aprendemos:

  • Como configurar o Workflows
  • Como configurar o gatilho do Eventarc para o Workflows
  • Como chamar o serviço do Cloud Run no Workflows
  • Como consultar registros estruturados no Cloud Logging e usar a gcloud CLI

O que vem em seguida:

Conheça outros codelabs da Cymbal Eats:

Limpar

Para evitar cobranças na sua conta do Google Cloud pelos recursos usados no tutorial, exclua o projeto ou mantenha o projeto e exclua cada um dos recursos.

Excluir o projeto

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