Attivazione di Workflows con Eventarc

1. Panoramica

In questo lab creerai un trigger Eventarc che collega un argomento Pub/Sub al servizio Workflows. Eventarc consente di disaccoppiare la comunicazione tra servizi, rendendo la tua soluzione più estensibile e basata su eventi. Dovrai creare un flusso di lavoro che include più passaggi per l'esecuzione di un processo aziendale per calcolare i punti premio dei clienti per gli ordini effettuati presso Cymbal Eats. Il flusso di lavoro chiamerà un'API di servizio Cloud Run privata per eseguire la logica di business. Il servizio Cloud Run è configurato per consentire solo il traffico interno e richiede l'autenticazione. Il flusso di lavoro pubblicherà un messaggio nell'argomento Pub/Sub per notificare al servizio ordini i punti premio calcolati.

c6d4337a47b55333.png

Che cos'è Eventarc?

Eventarc consente di creare architetture basate su eventi senza dover implementare, personalizzare o gestire l'infrastruttura sottostante. Eventarc offre una soluzione standardizzata per la gestione del flusso delle modifiche dello stato, chiamate eventi, tra microservizi disaccoppiati. Se attivato, Eventarc instrada questi eventi tramite sottoscrizioni Pub/Sub a varie destinazioni (ad es. Workflows o Cloud Run) mentre gestisce per te distribuzione, sicurezza, autorizzazione, osservabilità e gestione degli errori.

Fornitori di eventi Google

  • Più di 90 provider Google Cloud. Questi provider inviano gli eventi direttamente dall'origine (ad esempio Cloud Storage) o tramite le voci Cloud Audit Logs.
  • con i provider Pub/Sub. Questi provider inviano eventi a Eventarc utilizzando messaggi Pub/Sub.

Fornitori di terze parti

I fornitori di terze parti sono entità non Google che offrono un'origine Eventarc.

Trigger Eventarc

  • Eventi Cloud Pub/Sub. Eventarc può essere attivato dai messaggi pubblicati negli argomenti Pub/Sub.
  • Eventi Cloud Audit Logs (CAL). Cloud Audit Logs fornisce audit log per le attività di amministrazione e l'accesso ai dati per ogni progetto, cartella e organizzazione Cloud.
  • Eventi diretti. Eventarc può essere attivato da vari eventi diretti, ad esempio un aggiornamento di un bucket Cloud Storage o di un modello Firebase Remote Config.

Destinazioni degli eventi

c7ca054200edf1b3.png

Che cos'è Workflows?

Workflows è un servizio completamente gestito che consente di integrare microservizi, attività e API. Workflows è un servizio serverless e scala per soddisfare la tua domanda.

Casi d'uso di Workflows:

  • I flussi di lavoro basati su eventi vengono eseguiti su trigger definiti. Ad esempio, quando viene inviato un nuovo ordine e vuoi calcolare i punti fedeltà dei clienti. Oppure, quando un ordine viene annullato, l'evento può essere pubblicato e tutti i servizi interessati elaboreranno l'evento.
  • I flussi di lavoro dei job in batch eseguono job regolarmente utilizzando Cloud Scheduler. Ad esempio, un job notturno per controllare le voci di menu con stato Non riuscito ed eliminarle.

Workflows è la soluzione ideale per i flussi di lavoro che orchestrano i servizi. Puoi automatizzare i processi che includono attesa e nuovi tentativi fino a un anno.

Vantaggi di Workflows:

  • Configurazione sopra il codice: riduci i problemi tecnici spostando la logica in configurazione anziché scrivendo il codice.
  • Semplifica la tua architettura. I flussi di lavoro stateful consentono di visualizzare e monitorare complesse integrazioni di servizi senza dipendenze aggiuntive.
  • Incorporare l'affidabilità e la tolleranza di errore. Controlla gli errori con la logica predefinita o personalizzata dei nuovi tentativi e la gestione degli errori anche in caso di errore di altri sistemi, controllando ogni passaggio su Cloud Spanner per monitorare l'avanzamento.
  • Nessuna manutenzione. Scalabilità in base alle esigenze: non c'è nulla da correggere o gestire. Paghi solo quando i tuoi flussi di lavoro sono in esecuzione, senza costi in attesa o inattivi.

In questo lab configurerai un flusso di lavoro basato su eventi.

Cosa imparerai a fare

In questo lab imparerai a:

  • Configura un argomento Pub/Sub ed Eventarc per attivare Workflows
  • Configura il flusso di lavoro per chiamare il servizio Cloud Run e pubblicare messaggi in Pub/Sub
  • Come eseguire query sui log strutturati di Workflows in Cloud Logging e utilizzare gcloud CLI

Prerequisiti

  • In questo lab si presuppone che tu abbia familiarità con gli ambienti della console Cloud e Cloud Shell.
  • La precedente esperienza con Cloud Run e Cloud Pub/Sub è utile ma non obbligatoria.

2. Configurazione e requisiti

Configurazione del progetto Cloud

  1. Accedi alla console Google Cloud e crea un nuovo progetto o riutilizzane uno esistente. Se non hai ancora un account Gmail o Google Workspace, devi crearne uno.

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

bd84a6d3004737c5.png

  • Il Nome progetto è il nome visualizzato dei partecipanti del progetto. Si tratta di una stringa di caratteri non utilizzata dalle API di Google. Puoi aggiornarla in qualsiasi momento.
  • L'ID progetto è univoco in tutti i progetti Google Cloud ed è immutabile (non può essere modificato dopo essere stato impostato). La console Cloud genera automaticamente una stringa univoca; di solito non ti importa cosa sia. Nella maggior parte dei codelab, dovrai fare riferimento all'ID progetto (in genere è identificato come PROJECT_ID). Se l'ID generato non ti soddisfa, puoi generarne un altro casuale. In alternativa, puoi provarne una personalizzata per verificare se è disponibile. Non può essere modificato dopo questo passaggio e rimarrà per tutta la durata del progetto.
  • Per informazione, c'è un terzo valore, un numero di progetto, utilizzato da alcune API. Scopri di più su tutti e tre questi valori nella documentazione.
  1. Successivamente, dovrai abilitare la fatturazione nella console Cloud per utilizzare risorse/API Cloud. Eseguire questo codelab non dovrebbe costare molto. Per arrestare le risorse in modo da non incorrere in fatturazione oltre questo tutorial, puoi eliminare le risorse che hai creato o eliminare l'intero progetto. I nuovi utenti di Google Cloud sono idonei al programma prova senza costi di 300$.

Configurazione dell'ambiente

Attiva Cloud Shell facendo clic sull'icona a destra della barra di ricerca.

eb0157a992f16fa3.png

Clona il repository, vai alla directory, copia e incolla il comando seguente nel terminale e premi Invio:

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

Esegui il deployment delle dipendenze obbligatorie eseguendo lab-setup.sh

Verranno create le seguenti risorse:

  • Cluster e istanza AlloyDB
  • Artifact Registry per archiviare le immagini container per il job Cloud Run e l'assistenza clienti
  • Connettore di accesso VPC per il servizio e il job Cloud Run per comunicare con il database AlloyDB
  • Job Cloud Run per creare un database AlloyDB
  • Assistenza clienti Cloud Run: microservizio basato su Java che utilizza il framework Quarkus.
./lab-setup.sh

Se ti viene richiesta l'autorizzazione, fai clic su "Autorizza". per continuare.

6356559df3eccdda.png

La configurazione richiederà circa 10 minuti.

Attendi il completamento dello script e la visualizzazione dell'output in basso prima di eseguire altri passaggi.

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

Puoi esplorare la sezione successiva e tornare indietro per riprendere dal passaggio successivo.

3. Rivedi flusso di lavoro

Concetti principali di Workflows

Un flusso di lavoro consiste in una serie di passaggi descritti utilizzando la sintassi di Workflows( YAML o JSON).

Una volta creato, un flusso di lavoro viene implementato e pronto per l'esecuzione.

Un'esecuzione è una singola esecuzione della logica contenuta nella definizione di un flusso di lavoro. Un flusso di lavoro che non è stato eseguito non genera alcun addebito. Tutte le esecuzioni dei flussi di lavoro sono indipendenti e la scalabilità rapida del prodotto consente un elevato numero di esecuzioni simultanee.

Controlli di esecuzione

  • Passaggi - Per creare un flusso di lavoro, definisci il steps e l'ordine di esecuzione desiderati utilizzando la sintassi di Workflows. Ogni flusso di lavoro deve includere almeno un passaggio.
  • Condizioni - Puoi utilizzare un blocco switch come meccanismo di selezione che consente al valore di un'espressione di controllare il flusso di esecuzione di un flusso di lavoro.
  • Iterazioni: puoi utilizzare un ciclo for per ripetere una sequenza di numeri o una raccolta di dati come un elenco o una mappa.
  • Flussi di lavoro secondari: un flusso di lavoro secondario funziona in modo simile a una routine o a una funzione in un linguaggio di programmazione, consentendoti di incapsulare un passaggio o un insieme di passaggi che il flusso di lavoro ripeterà più volte.

Attivazione delle esecuzioni

  • Manuale: puoi gestire i flussi di lavoro dalla console Google Cloud o dalla riga di comando utilizzando Google Cloud CLI.
  • Pubblicità programmatica: le librerie client di Cloud per l'API Workflows, o l'API REST, possono essere utilizzate per gestire i flussi di lavoro.
  • Pianificato: puoi utilizzare Cloud Scheduler per eseguire un flusso di lavoro in base a una determinata pianificazione.

Argomenti di runtime

Puoi accedere ai dati trasmessi in fase di runtime aggiungendo un campo params al flusso di lavoro principale (in un blocco principale). Il blocco principale accetta un singolo argomento che è qualsiasi tipo di dati JSON valido. Il campo dei parametri assegna un nome alla variabile utilizzata dal flusso di lavoro per memorizzare i dati trasmessi.

Autenticazione del servizio dal flusso di lavoro all'autenticazione Cloud Run

L'assistenza clienti è un'applicazione di esempio inclusa in questo repository che viene eseguita su Cloud Run ed è configurata per consentire le richieste autenticate solo da reti interne. Configurerai Workflows in modo da aggiungere un token OpenID Connect(OIDC) firmato da Google alla richiesta per l'autenticazione con il servizio Cloud Run.

Consulta la documentazione per scoprire di più sull'autenticazione da servizio a servizio.

L'autenticazione del flusso di lavoro è configurata nel blocco args utilizzando la sezione auth.

rewardsWorkflow.yaml.tmpl

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

Logica del flusso di lavoro

Se un cliente non esiste, questo flusso di lavoro effettuerà una chiamata API per creare prima un cliente e poi aggiornare i punti premio. In base all'importo totale dell'ordine, il flusso di lavoro selezionerà un moltiplicatore per calcolare i punti premio per il cliente. Per ulteriori dettagli, vedi l'esempio di seguito.

  - 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. Configura ed esegui il deployment del flusso di lavoro

Configura le variabili di 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

Sostituisci l'URL del servizio nel modello di flusso di lavoro:

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

Imposta la località per le variabili del servizio Workflows e dell'ambiente del progetto:

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)')

Crea un account di servizio personalizzato per il flusso di lavoro con le seguenti autorizzazioni:

  • Richiama il servizio Cloud Run
  • API per la registrazione delle chiamate
  • Pubblica messaggi nell'argomento 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"

Esegui il deployment del flusso di lavoro. Il flusso di lavoro è configurato in modo da utilizzare l'account di servizio creato nel passaggio precedente:

export WORKFLOW_NAME=rewardsWorkflow

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

Esamina l'origine del flusso di lavoro e altri dettagli(scheda Trigger). Al momento non ci sono trigger configurati per l'esecuzione di questo flusso di lavoro. Lo configurerai nel passaggio successivo.

d3527393fb07a9b3.png

5. Configura argomenti Pub/Sub e trigger Eventarc

Poi creerai due argomenti Pub/Sub e configurerai un trigger Eventarc.

Il servizio ordini pubblicherà messaggi su order-topic con informazioni sui nuovi ordini.

Il flusso di lavoro pubblicherà messaggi su order-points-topic con informazioni sui punti premio degli ordini e sull'importo totale. Il servizio ordini(non parte di questo lab di cui è stato eseguito il deployment) espone un endpoint utilizzato dall'abbonamento push per order-points-topic, per aggiornare i punti premio e l'importo totale per ordine.

Crea nuovi argomenti 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

Imposta la località per il servizio Eventarc:

gcloud config set eventarc/location ${REGION}

Crea un account di servizio personalizzato che verrà utilizzato dal trigger Eventarc per l'esecuzione di flussi di lavoro.

export TRIGGER_SERVICE_ACCOUNT=eventarc-workflow-sa

gcloud iam service-accounts create ${TRIGGER_SERVICE_ACCOUNT}

Concedi l'accesso all'account di servizio per eseguire i flussi di lavoro.

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

Crea un trigger Eventarc per ascoltare i messaggi Pub/Sub e recapitarli a 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

Esempio di output:

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.

Rivedi il trigger Eventarc creato.

bda445561ad5f4.png

Controlla l'abbonamento creato per il trigger.

3fccdda7d5526597.png

Esamina le modifiche sul flusso di lavoro. È stato aggiunto un nuovo trigger.

23d338abc16eaac8.png

6. Testa il flusso di lavoro

c6d4337a47b55333.png

Per simulare il servizio ordini, invierai messaggi all'argomento Pub/Sub da Cloud Shell e verificherai i log del servizio clienti Cloud Run nella console 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}]}'

Esempio di output:

messageIds:
- '5063709859203105'

Esamina i dettagli di esecuzione del flusso di lavoro e i log.

1e802826c700cc3e.png

aad0eae7a970316.png

7. Logging strutturato del flusso di lavoro

Il flusso di lavoro è configurato per scrivere log strutturati in formato JSON. I log vengono scritti usando l'API Cloud Logging, la risorsa workflows.googleapis.com/Workflow e sotto il nome log projects/${PROJECT_ID}/logs/Workflows.

Rivedi la configurazione del logging di seguito.

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

Apri Esplora log nella console ed esegui una query per gli ordini elaborati con un importo totale superiore a 2 $.

Utilizza la query seguente, sostituisci l'ID progetto(qwiklabs-gcp-01-1a990bfcadb3) con l'ID progetto corrente:

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"

Esempio di output:

22d2f4686c58724d.png

Apri Cloud Shell e utilizza gcloud CLI per leggere i log con i comandi riportati di seguito.

Sostituisci l'ID progetto(qwiklabs-gcp-01-1a990bfcadb3) con l'ID progetto attuale.

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

Esempio di output nel formato table:

35d5fd851ecde60.png

Sostituisci l'ID progetto(qwiklabs-gcp-01-1a990bfcadb3) con l'ID progetto attuale.

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

Esempio di output nel formato json:

ac7421548ea9a9f2.png

8. Esamina i registri dei clienti

(Passaggi facoltativi) Al momento customer-service è configurato per accettare solo il traffico proveniente da reti interne.

Esegui i comandi riportati di seguito per salvare l'URL del servizio e chiamare l'assistenza clienti.

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

Riceverai un messaggio di errore che ti informa che l'accesso è vietato.

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

Per visualizzare i record dei clienti esistenti, modifica le impostazioni di Cloud Run customer-service in entrata in "Allow all traffic" e fai clic su "Salva".

In questo modo l'endpoint sarà pubblico e potrai chiamare l'API Customer Service da Cloud Shell utilizzando curl.

9156e0eb0a19bc68.png

Esegui i comandi riportati di seguito per salvare l'URL del servizio ed elencare i clienti esistenti.

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

Esempio di output:

[
  {
    "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"
  }
]

Esegui il comando per pubblicare un nuovo ordine più volte e verifica i punti premio del cliente con il comando curl.

Pubblica nuovo messaggio di ordine:

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}]}'

Verifica i punti premio dei clienti:

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

Verifica i log. Sostituisci l'ID progetto(qwiklabs-gcp-01-1a990bfcadb3) con l'ID progetto attuale.

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. Complimenti!

Complimenti, hai completato il codelab.

Argomenti trattati:

  • Come configurare Workflows
  • Come configurare il trigger Eventarc per Workflows
  • Chiamare il servizio Cloud Run da Workflows
  • Come eseguire query sui log strutturati in Cloud Logging e utilizzare gcloud CLI

Passaggi successivi

Esplora altri codelab di Cymbal Eats:

Esegui la pulizia

Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo tutorial, elimina il progetto che contiene le risorse oppure mantieni il progetto ed elimina le singole risorse.

Elimina il progetto

Il modo più semplice per eliminare la fatturazione è quello di eliminare il progetto che hai creato per il tutorial.