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 do Workflows. Com o Eventarc, é possível separar 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 do cliente por fazer pedidos no Cymbal Eats. O fluxo de trabalho vai chamar uma API de serviço privada do Cloud Run para executar a lógica de negócios. O serviço do Cloud Run está configurado para permitir apenas tráfego interno e exige autenticação. O fluxo de trabalho vai 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?

Com o Eventarc, é possível criar 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 mudanças de estado, chamadas de eventos, entre microsserviços separados. Quando acionado, o Eventarc encaminha esses eventos por meio de assinaturas do Pub/Sub para vários destinos (por exemplo, Workflows ou Cloud Run) e gerencia entrega, segurança, autorização, observabilidade e tratamento de erros.

Provedores de eventos do Google

  • Mais de 90 provedores do Google Cloud. Esses provedores enviam eventos diretamente da origem (por exemplo, Cloud Storage) ou usando entradas de registros de auditoria do Cloud.
  • Provedores do Pub/Sub. Esses provedores enviam eventos para o Eventarc usando mensagens do Pub/Sub.

Provedores terceirizados

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

Gatilhos do Eventarc

  • Eventos do Cloud Pub/Sub. O Eventarc pode ser acionado por mensagens publicadas nos 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 na nuvem, pasta e organização.
  • 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 eventos

  • Fluxos de trabalho
  • Cloud Run
  • GKE
  • Cloud Functions( 2ª geração)

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 que será escalonado para atender à sua demanda.

Casos de uso dos fluxos de trabalho:

  • Os fluxos de trabalho orientados a 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 vão processá-lo.
  • Os fluxos de trabalho de jobs em lote executam jobs regularmente usando o Cloud Scheduler. Por exemplo, um job noturno para verificar itens de menu com 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 dos fluxos de trabalho:

  • Configuração em vez de 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ço complexas sem outras dependências.
  • Incorpore confiabilidade e tolerância a falhas. Controle falhas com a lógica de repetição padrão ou personalizada e com o tratamento de erros mesmo quando outros sistemas falharem, estabelecendo pontos de verificação em cada etapa do Cloud Spanner para ajudar no acompanhamento do progresso.
  • Manutenção zero Escalone conforme a necessidade: não há nada para corrigir ou manter. Pague apenas quando seus fluxos de trabalho forem executados. Não há cobranças durante o tempo de espera ou inatividade.

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

O que você vai aprender

Neste laboratório, você vai aprender a:

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

Pré-requisitos

  • Para fazer este laboratório, é preciso saber usar o console do Cloud e os ambientes do Cloud Shell.
  • Ter experiência 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 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 É possível atualizar o local 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. Em geral, não importa o que seja. Na maioria dos codelabs, é necessário fazer referência ao ID do projeto, normalmente identificado como PROJECT_ID. Se você não gostar do ID gerado, crie outro aleatório. Se preferir, teste o seu e confira se ele está disponível. Ele não pode ser mudado após essa etapa e permanece durante o projeto.
  • Para sua informação, há um terceiro valor, um Número do 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 evitar cobranças além deste tutorial, exclua os recursos criados ou 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

Clique no ícone à direita da barra de pesquisa para ativar o Cloud Shell.

eb0157a992f16fa3.png

Clone o repositório e navegue até 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 o lab-setup.sh

Os seguintes recursos serão criados:

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

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

6356559df3eccdda.png

A configuração leva cerca de 10 minutos.

Aguarde até que o script seja concluído e a saída abaixo apareça 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 ler a próxima seção e voltar para continuar da próxima etapa.

3. Fluxo de trabalho de revisão

Conceitos básicos 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, ficando 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 grande número de execuções simultâneas.

Controles de execução

  • Etapas: para criar um fluxo de trabalho, defina as steps e a ordem de execução desejadas usando a sintaxe do Workflows. Cada fluxo de trabalho precisa ter pelo menos uma etapa.
  • Condições: é possível usar um bloco switch como um mecanismo de seleção que permite que o valor de uma expressão controle o fluxo da execução de um fluxo de trabalho.
  • Iterações: use uma repetição for para iterar uma sequência de números ou uma coleção de dados, como uma lista ou um mapa.
  • Subfluxos de trabalho: um subfluxo de trabalho funciona 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 serão repetidas várias vezes pelo fluxo de trabalho.

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ático: as bibliotecas de cliente do Cloud para a API Workflows ou a API REST podem ser usadas para gerenciar fluxos de trabalho.
  • Programado: use o Cloud Scheduler para executar um fluxo de trabalho em uma programação específica.

Argumentos de ambiente de execução

Os dados transmitidos no ambiente de execução podem ser acessados adicionando um campo params ao fluxo de trabalho principal (posicionado em um bloco principal). O bloco principal aceita um único argumento que seja 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 autenticação de serviço do Cloud Run

O Customer service é um aplicativo de exemplo incluído neste repositório que é executado no Cloud Run e está configurado para permitir apenas solicitações autenticadas 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.

Consulte a documentação para saber mais sobre a autenticação 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, esse fluxo de trabalho fará uma chamada de API para criar um cliente primeiro 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 do cliente. Confira um 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 do serviço no modelo de fluxo de trabalho:

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

Defina o local para as variáveis de ambiente do serviço Workflows e 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 serviço do Cloud Run
  • Chamar APIs Logging
  • Publicar mensagens no tópico do Pub/Sub
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"

Implante o fluxo de trabalho. O fluxo de trabalho está 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á gatilhos configurados para executar este fluxo de trabalho. Você vai configurar isso na próxima etapa.

d3527393fb07a9b3.png

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

Em seguida, crie dois tópicos do Pub/Sub e configure 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 vai 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 por push para order-points-topic, atualizar os pontos de recompensa e o valor total por pedido.

Crie 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"

Crie 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 gatilho do Eventarc criado.

bda445561ad5f4.png

Revise a assinatura criada para o gatilho.

3fccdda7d5526597.png

Revise 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, você vai enviar mensagens ao tópico do Pub/Sub no Cloud Shell e verificar os registros do serviço de 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 da execução do fluxo de trabalho e os registros.

1e802826c700cc3e.png

aad0eae7a970316.png

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

O fluxo de trabalho é 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 o nome de registro projects/${PROJECT_ID}/logs/Workflows.

Revise a configuração de 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 o 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 e substitua o ID do projeto(qwiklabs-gcp-01-1a990bfcadb3) pelo ID do seu 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 seu 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 seu 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 registros de clientes

(Etapas opcionais) No momento, 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 é 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 ver os registros de clientes atuais, mude as configurações de entrada do customer-service do Cloud Run para a opção "Allow all traffic" e clique em "Salvar".

Isso vai tornar o endpoint público, e você poderá chamar a API Customer Service do 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 o comando para publicar um novo pedido várias vezes e verifique os pontos de recompensa do cliente com o comando curl.

Publicar mensagem de novo 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 seu 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 um gatilho do Eventarc para o Workflows
  • Como chamar o serviço do Cloud Run do Workflows
  • Como consultar registros estruturados no Cloud Logging e usando a CLI gcloud

Qual é a próxima etapa?

Confira outros codelabs do 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.