1. Présentation
Dans cet atelier, vous allez créer un déclencheur Eventarc qui connecte un sujet Pub/Sub au service Workflows. Eventarc vous permet de découpler la communication entre les services, ce qui rend votre solution plus extensible et basée sur des événements. Vous allez créer un workflow comprenant plusieurs étapes pour exécuter un processus métier permettant de calculer les points de fidélité des clients qui commandent sur Cymbal Eats. Le workflow appellera une API de service Cloud Run privée pour exécuter la logique métier. Le service Cloud Run est configuré pour n'autoriser que le trafic interne et nécessite une authentification. Le workflow publiera un message sur le sujet Pub/Sub pour informer le service de commande des points de récompense calculés.
Qu'est-ce qu'Eventarc ?
Eventarc vous permet de créer des architectures basées sur des événements sans avoir à implémenter, à personnaliser ni à gérer l'infrastructure sous-jacente. Eventarc offre une solution standardisée pour gérer le flux des changements d'état, appelés événements, entre les microservices découplés. Lorsqu'il est déclenché, Eventarc achemine ces événements via des abonnements Pub/Sub vers différentes destinations (par exemple, Workflows ou Cloud Run) tout en gérant la diffusion, la sécurité, les autorisations, l'observabilité et la gestion des erreurs à votre place.
Fournisseurs d'événements Google
- Plus de 90 fournisseurs Google Cloud. Ces fournisseurs envoient des événements directement depuis la source (Cloud Storage, par exemple) ou via des entrées de journaux d'audit Cloud.
- Fournisseurs Pub/Sub. Ces fournisseurs envoient des événements à Eventarc à l'aide de messages Pub/Sub.
Fournisseurs tiers
Les fournisseurs tiers sont des entités autres que Google qui proposent une source Eventarc.
Déclencheurs Eventarc
- Événements Cloud Pub/Sub Eventarc peut être déclenché par les messages publiés dans les sujets Pub/Sub.
- Événements Cloud Audit Logs (CAL) Cloud Audit Logging fournit des journaux d'audit pour les activités d'administration et l'accès aux données pour chaque projet, dossier et organisation Cloud.
- Événements directs : Eventarc peut être déclenché par divers événements directs, tels qu'une mise à jour d'un bucket Cloud Storage ou une mise à jour d'un modèle Firebase Remote Config.
Destinations d'événement
- Workflows
- Cloud Run
- GKE
- Cloud Functions( 2nd gen)

Qu'est-ce que Workflows ?
Workflows est un service entièrement géré qui vous permet d'intégrer des microservices, des tâches et des API. Workflows est un service sans serveur qui s'adapte à votre demande.
Cas d'utilisation des workflows :
- Les workflows basés sur des événements s'exécutent sur des déclencheurs définis. Par exemple, lorsqu'une nouvelle commande est passée et que vous souhaitez calculer les points de fidélité du client. De même, lorsqu'une commande est annulée, l'événement peut être publié et tous les services intéressés le traiteront.
- Les workflows de jobs par lot exécutent des jobs de manière régulière à l'aide de Cloud Scheduler. Par exemple, une tâche nocturne permettant de rechercher les éléments de menu dont l'état est "Échec" et de les supprimer.
Workflows est idéal pour les workflows qui orchestrent des services. Vous pouvez automatiser les processus, y compris les délais d'attente et les nouvelles tentatives jusqu'à un an.
Avantages des workflows :
- Configuration plutôt que code : réduisez la dette technique en transférant la logique vers la configuration plutôt qu'en écrivant du code.
- Simplifiez votre architecture. Les workflows avec état vous permettent de visualiser et de surveiller des intégrations de services complexes sans dépendances supplémentaires.
- Intégrez la fiabilité et la tolérance aux pannes. Contrôlez les échecs grâce à la logique de nouvelle tentative par défaut ou personnalisée, ainsi qu'à la gestion des erreurs même lorsque d'autres systèmes échouent. Vérifiez chaque étape du transfert vers Cloud Spanner pour suivre votre progression.
- Aucune maintenance nécessaire : Évoluez selon vos besoins : vous n'avez rien à corriger ni à gérer. Vous ne payez que lorsque vos workflows s'exécutent, et non lorsqu'ils sont inactifs ou en attente.
Dans cet atelier, vous allez configurer un workflow basé sur des événements.
Objectifs de l'atelier
Dans cet atelier, vous allez apprendre à effectuer les tâches suivantes :
- Configurer un sujet Pub/Sub et Eventarc pour déclencher Workflows
- Configurer le workflow pour appeler le service Cloud Run et publier des messages dans Pub/Sub
- Interroger les journaux structurés Workflows dans Cloud Logging et à l'aide de la gcloud CLI
Prérequis
- Dans cet atelier, nous considérons que vous connaissez la console Cloud et les environnements Cloud Shell.
- Une expérience préalable avec Cloud Run et Cloud Pub/Sub est utile, mais pas indispensable.
2. Préparation
Configuration du projet Cloud
- Connectez-vous à la console Google Cloud, puis créez un projet ou réutilisez un projet existant. (Si vous ne possédez pas encore de compte Gmail ou Google Workspace, vous devez en créer un.)



- Le nom du projet est le nom à afficher pour les participants au projet. Il s'agit d'une chaîne de caractères non utilisée par les API Google. Vous pouvez le modifier à tout moment.
- L'ID du projet est unique parmi tous les projets Google Cloud et non modifiable une fois défini. La console Cloud génère automatiquement une chaîne unique (en général, vous n'y accordez d'importance particulière). Dans la plupart des ateliers de programmation, vous devrez indiquer l'ID du projet (généralement identifié par
PROJECT_ID). Si l'ID généré ne vous convient pas, vous pouvez en générer un autre de manière aléatoire. Vous pouvez également en spécifier un et voir s'il est disponible. Après cette étape, l'ID n'est plus modifiable et restera donc le même pour toute la durée du projet. - Pour information, il existe une troisième valeur (le numéro de projet) que certaines API utilisent. Pour en savoir plus sur ces trois valeurs, consultez la documentation.
- Vous devez ensuite activer la facturation dans la console Cloud pour utiliser les ressources/API Cloud. L'exécution de cet atelier de programmation est très peu coûteuse, voire sans frais. Pour désactiver les ressources et éviter ainsi que des frais ne vous soient facturés après ce tutoriel, vous pouvez supprimer le projet ou les ressources que vous avez créées. Les nouveaux utilisateurs de Google Cloud peuvent participer au programme d'essai sans frais pour bénéficier d'un crédit de 300$.
Configuration de l'environnement
Activez Cloud Shell en cliquant sur l'icône à droite de la barre de recherche.

Clonez le dépôt et accédez au répertoire. Pour ce faire, copiez et collez la commande ci-dessous dans le terminal, puis appuyez sur Entrée :
git clone https://github.com/GoogleCloudPlatform/cymbal-eats.git && cd cymbal-eats/customer-service
Déployez les dépendances requises en exécutant lab-setup.sh.
Les ressources suivantes seront créées :
- Cluster et instance AlloyDB
- Artifact Registry pour stocker les images de conteneurs pour les jobs Cloud Run et le service client
- Connecteur d'accès au VPC pour le service et le job Cloud Run afin de communiquer avec la base de données AlloyDB
- Job Cloud Run pour créer une base de données AlloyDB
- Service client Cloud Run : microservice basé sur Java qui utilise le framework Quarkus.
./lab-setup.sh
Si vous êtes invité à donner votre autorisation, cliquez sur "Autoriser" pour continuer.

La configuration prendra environ 10 minutes.
Attendez que le script soit terminé et que le résultat ci-dessous s'affiche avant d'exécuter les autres étapes.
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
Vous pouvez explorer la section suivante, puis revenir en arrière pour reprendre à l'étape suivante.
3. Workflow d'examen
Concepts de base des workflows
Un workflow se compose d'une série d'étapes décrites à l'aide de la syntaxe Workflows( YAML ou JSON).
Une fois un workflow créé, il est déployé, ce qui le rend prêt à être exécuté.
Une exécution est une exécution unique de la logique contenue dans la définition d'un workflow. Un workflow qui n'a pas été exécuté ne génère aucuns frais. Toutes les exécutions de workflows sont indépendantes, et le scaling rapide du produit permet un grand nombre d'exécutions simultanées.
Contrôles d'exécution
- Étapes : pour créer un workflow, vous devez définir les
stepset l'ordre d'exécution souhaités à l'aide de la syntaxe Workflows. Chaque workflow doit comporter au moins une étape. - Conditions : vous pouvez utiliser un bloc
switchen tant que mécanisme de sélection qui permet à la valeur d'une expression de contrôler le flux d'exécution d'un workflow. - Itérations : vous pouvez utiliser une boucle
forpour effectuer une itération sur une séquence de nombres ou sur une collection de données, telle qu'une liste ou une carte. - Sous-workflows : un sous-workflow fonctionne comme une routine ou une fonction dans un langage de programmation, vous permettant d'encapsuler une étape ou un ensemble d'étapes que votre workflow répétera plusieurs fois.
Déclencher des exécutions
- Manuelle : vous pouvez gérer les workflows à partir de la console Google Cloud ou de la ligne de commande à l'aide de la Google Cloud CLI.
- Par programmation : les bibliothèques clientes Cloud pour l'API Workflows ou l'API REST peuvent être utilisées pour gérer les workflows.
- Planifié : vous pouvez utiliser Cloud Scheduler pour exécuter un workflow selon un calendrier spécifique.
Arguments d'exécution
Les données transmises au moment de l'exécution sont accessibles en ajoutant un champ params à votre workflow principal (défini dans un bloc principal). Le bloc principal accepte un argument unique correspondant à n'importe quel type de données JSON valide. Le champ "params" nomme la variable utilisée par le workflow pour stocker les données que vous transmettez.
Workflow d'authentification auprès du service Cloud Run
Le service client est un exemple d'application inclus dans ce dépôt qui s'exécute sur Cloud Run et qui est configuré pour autoriser les requêtes authentifiées provenant uniquement des réseaux internes. Vous configurerez Workflows pour ajouter un jeton OpenID Connect(OIDC) signé par Google à la requête afin de vous authentifier auprès du service Cloud Run.
Consultez la documentation pour en savoir plus sur l'authentification de service à service.
L'authentification du workflow est configurée dans le bloc args à l'aide de la section auth.
rewardsWorkflow.yaml.tmpl
- create_customer:
call: http.post
args:
url: CUSTOMER_SERVICE_URL/customer
auth:
type: OIDC
Logique du workflow
Si un client n'existe pas, ce workflow effectue un appel d'API pour créer un client, puis met à jour les points de récompense. En fonction du montant total de la commande, le workflow sélectionne un multiplicateur pour calculer les points de récompense du client. Pour en savoir plus, consultez l'exemple ci-dessous.
- 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}

4. Configurer et déployer Workflow
Configurez des variables d'environnement :
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
Remplacez l'URL du service dans le modèle de workflow :
sed "s@CUSTOMER_SERVICE_URL@$CUSTOMER_SERVICE_URL@g" rewardsWorkflow.yaml.tmpl > rewardsWorkflow.yaml
Définissez l'emplacement des variables d'environnement du service Workflows et du projet :
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)')
Créez un compte de service personnalisé pour le workflow avec les autorisations suivantes :
- Appeler un service Cloud Run
- Appeler les API Logging
- Publier des messages dans un sujet 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"
Déployez le workflow. Le workflow est configuré pour utiliser le compte de service créé à l'étape précédente :
export WORKFLOW_NAME=rewardsWorkflow
gcloud workflows deploy ${WORKFLOW_NAME} \
--source=rewardsWorkflow.yaml \
--service-account=${WORKFLOW_SERVICE_ACCOUNT}@$PROJECT_ID.iam.gserviceaccount.com
Examinez la source du workflow et d'autres détails(onglet "Déclencheurs"). Aucun déclencheur n'est actuellement configuré pour exécuter ce workflow. Vous le configurerez à l'étape suivante.

5. Configurer des sujets Pub/Sub et un déclencheur Eventarc
Vous allez ensuite créer deux sujets Pub/Sub et configurer un déclencheur Eventarc.
Le service de commande publiera des messages dans order-topic contenant des informations sur les nouvelles commandes.
Le workflow publie des messages dans order-points-topic avec des informations sur les points de récompense de la commande et le montant total. Le service de commande(partie non déployée de cet atelier) expose un point de terminaison utilisé par l'abonnement Push pour order-points-topic, afin de mettre à jour les points de récompense et le montant total par commande.
Créez des sujets 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
Définissez l'emplacement du service Eventarc :
gcloud config set eventarc/location ${REGION}
Créez un compte de service personnalisé qui sera utilisé par le déclencheur Eventarc pour exécuter les workflows.
export TRIGGER_SERVICE_ACCOUNT=eventarc-workflow-sa
gcloud iam service-accounts create ${TRIGGER_SERVICE_ACCOUNT}
Accordez au compte de service l'accès à l'exécution des workflows.
gcloud projects add-iam-policy-binding ${PROJECT_ID} \
--member="serviceAccount:${TRIGGER_SERVICE_ACCOUNT}@${PROJECT_ID}.iam.gserviceaccount.com" \
--role="roles/workflows.invoker"
Créez un déclencheur Eventarc pour écouter les messages Pub/Sub et les envoyer à 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
Exemple de résultat :
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.
Vérifiez le déclencheur Eventarc créé.

Examinez l'abonnement créé pour le déclencheur.

Examinez les modifications du côté workflow. Un déclencheur a été ajouté.

6. Tester le workflow
Pour simuler le service de commande, vous enverrez des messages au sujet Pub/Sub depuis Cloud Shell et vérifierez les journaux du service client Cloud Run dans la 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}]}'
Exemple de résultat :
messageIds: - '5063709859203105'
Consultez les détails de l'exécution du workflow et les journaux.


7. Journalisation structurée des workflows
Le workflow est configuré pour écrire des journaux structurés au format JSON. Les journaux sont écrits à l'aide de l'API Cloud Logging, de la ressource workflows.googleapis.com/Workflow et sous le nom de journal projects/${PROJECT_ID}/logs/Workflows.
Examinez la configuration de journalisation ci-dessous.
- log_totalAmount:
call: sys.log
args:
json:
orderNumber: ${order.orderNumber}
totalAmount: ${totalAmount}
multiplier: ${multiplier}
totalRewardPoints: ${rewardPoints}
orderRewardPoints: ${orderRewardPoints}
severity: INFO
Ouvrez l'explorateur de journaux dans la console, puis exécutez une requête pour les commandes traitées dont le montant total est supérieur à 2 $.
Utilisez la requête ci-dessous et remplacez l'ID de projet(qwiklabs-gcp-01-1a990bfcadb3) par votre ID de projet actuel :
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"
Exemple de résultat :

Ouvrez Cloud Shell et utilisez la gcloud CLI pour lire les journaux avec les commandes ci-dessous.
Remplacez l'ID du projet(qwiklabs-gcp-01-1a990bfcadb3) par l'ID de votre projet actuel.
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)"
Exemple de résultat au format table :

Remplacez l'ID du projet(qwiklabs-gcp-01-1a990bfcadb3) par l'ID de votre projet actuel.
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
Exemple de résultat au format json :

8. Examiner les fiches client
(Étapes facultatives) Pour le moment, customer-service est configuré pour n'accepter que le trafic provenant des réseaux internes.
Exécutez les commandes ci-dessous pour enregistrer l'URL du service et appeler le service client.
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
Un message d'erreur indiquant que l'accès est interdit s'affiche.
<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>
Pour afficher les fiches client existantes, définissez les paramètres d'entrée customer-service Cloud Run sur l'option Allow all traffic, puis cliquez sur "Enregistrer".
Le point de terminaison sera alors public et vous pourrez appeler l'API Customer Service depuis Cloud Shell à l'aide de curl.

Exécutez les commandes ci-dessous pour enregistrer l'URL du service et lister les clients existants.
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
Exemple de résultat :
[
{
"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"
}
]
Exécutez la commande pour publier une nouvelle commande plusieurs fois et vérifiez les points de récompense du client avec la commande curl.
Publier un message de nouvelle commande :
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}]}'
Vérifiez les points de récompense du client :
curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" $CUSTOMER_SERVICE_URL/customer | jq
Vérifiez les journaux. Remplacez l'ID du projet(qwiklabs-gcp-01-1a990bfcadb3) par l'ID de votre projet actuel.
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. Félicitations !
Félicitations, vous avez terminé cet atelier de programmation.
Points abordés
- Configurer les workflows
- Configurer un déclencheur Eventarc pour Workflows
- Appeler un service Cloud Run à partir de Workflows
- Interroger des journaux structurés dans Cloud Logging et à l'aide de gcloud CLI
Étapes suivantes :
Découvrez d'autres ateliers de programmation Cymbal Eats :
- Déclencher le traitement des événements à partir de Cloud Storage
- Se connecter à une instance CloudSQL privée depuis Cloud Run
- Se connecter à des bases de données entièrement gérées depuis Cloud Run
- Sécuriser une application serverless avec Identity-Aware Proxy (IAP)
- Déclencher des jobs Cloud Run avec Cloud Scheduler
- Déployer de manière sécurisée sur Cloud Run
- Sécuriser le trafic d'entrée Cloud Run
- Se connecter à une instance AlloyDB privée depuis GKE Autopilot
Effectuer un nettoyage
Pour éviter que les ressources utilisées lors de ce tutoriel soient facturées sur votre compte Google Cloud, supprimez le projet contenant les ressources, ou conservez le projet et supprimez chaque ressource individuellement.
Supprimer le projet
Le moyen le plus simple d'empêcher la facturation est de supprimer le projet que vous avez créé pour ce tutoriel.
