Exécuter une tâche Cloud Run qui traite les données d'événement enregistrées dans Cloud Storage


Vous pouvez utiliser Workflows pour exécuter Job Cloud Run dans le cadre d'un workflow qui effectue un traitement de données plus complexe ou qui orchestre un système des jobs existants.

Ce tutoriel explique comment utiliser des workflows pour exécuter un job Cloud Run qui traite les données d'événement stockées dans un bucket Cloud Storage. Stocker la charge utile de l'événement dans Cloud Storage vous permet de chiffrer les données clés de chiffrement gérées par le client ce qui n'est pas possible si vous Transmettre les données d'événement en tant que variables d'environnement au job Cloud Run.

Le diagramme suivant offre une vue d'ensemble :

L'événement Pub/Sub est acheminé par le déclencheur Eventarc vers Workflows et enregistré dans Cloud
Cloud Storage. Le job Cloud Run traite les données d'événement stockées dans le bucket.

Objectifs

Au cours de ce tutoriel, vous allez :

  1. Créer un job Cloud Run qui traite les données d'événement stockées dans dans un bucket Cloud Storage.
  2. Déployez un workflow qui effectue les opérations suivantes :
    1. Reçoit un événement en tant qu'argument.
    2. Écrit les données de la charge utile de l'événement dans le bucket Cloud Storage.
    3. Utilise le connecteur de l'API Admin Cloud Run pour exécuter le job Cloud Run.
  3. Créez un sujet Pub/Sub afin de pouvoir y publier un message. Ce tutoriel utilise un événement Pub/Sub comme exemple d'acheminement à l'aide de Workflows, en enregistrant l'événement sur Cloud Storage afin qu'un job Cloud Run puisse traiter les données d'événement.
  4. Créez un déclencheur Eventarc qui exécute le workflow lorsqu'un message est écrit dans le sujet Pub/Sub.
  5. Déclenchez le workflow en écrivant un message dans le sujet Pub/Sub.

Coûts

Dans ce document, vous utilisez les composants facturables suivants de Google Cloud :

Obtenez une estimation des coûts en fonction de votre utilisation prévue à l'aide du simulateur de coût. Les nouveaux utilisateurs de Google Cloud peuvent bénéficier d'un essai gratuit.

Avant de commencer

Les contraintes de sécurité définies par votre organisation peuvent vous empêcher d'effectuer les étapes suivantes. Pour obtenir des informations de dépannage, consultez la page Développer des applications dans un environnement Google Cloud limité.

Avant de commencer ce tutoriel, vous devez activer des API spécifiques et créer un compte de service géré par l'utilisateur. Vous devez accorder au compte de service les rôles et les autorisations nécessaires pour pouvoir acheminer des événements à l'aide d'un déclencheur Eventarc et exécuter un workflow.

Notez que si vous utilisez Cloud Shell pour suivre ce tutoriel, vous devrez peut-être attribuer des rôles supplémentaires au compte de service Compute Engine par défaut. Pour plus d'informations, reportez-vous aux Créer un job Cloud Run.

Console

  1. Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Artifact Registry, Cloud Build, Cloud Run, Cloud Storage, Compute Engine, Eventarc, and Workflows APIs.

    Enable the APIs

  5. Create a service account:

    1. In the Google Cloud console, go to the Create service account page.

      Go to Create service account
    2. Select your project.
    3. In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.

      In the Service account description field, enter a description. For example, Service account for quickstart.

    4. Click Create and continue.
    5. Grant the following roles to the service account: Cloud Run Admin, Eventarc Event Receiver, Logs Writer, Storage Object Creator, Workflows Invoker.

      To grant a role, find the Select a role list, then select the role.

      To grant additional roles, click Add another role and add each additional role.

    6. Click Continue.
    7. Click Done to finish creating the service account.

  6. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  7. Make sure that billing is enabled for your Google Cloud project.

  8. Enable the Artifact Registry, Cloud Build, Cloud Run, Cloud Storage, Compute Engine, Eventarc, and Workflows APIs.

    Enable the APIs

  9. Create a service account:

    1. In the Google Cloud console, go to the Create service account page.

      Go to Create service account
    2. Select your project.
    3. In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.

      In the Service account description field, enter a description. For example, Service account for quickstart.

    4. Click Create and continue.
    5. Grant the following roles to the service account: Cloud Run Admin, Eventarc Event Receiver, Logs Writer, Storage Object Creator, Workflows Invoker.

      To grant a role, find the Select a role list, then select the role.

      To grant additional roles, click Add another role and add each additional role.

    6. Click Continue.
    7. Click Done to finish creating the service account.

  10. Si vous avez activé l'agent de service Cloud Pub/Sub sur avant le 8 avril 2021, pour permettre le push Pub/Sub authentifié de requête, accordez Services Rôle de créateur de jetons de compte (roles/iam.serviceAccountTokenCreator) à l'agent de service. Sinon, ce rôle est attribué par défaut:
    1. Dans la console Google Cloud, accédez à la page IAM.

      Accéder à IAM

    2. Cochez la case Inclure les attributions de rôles fournies par Google.
    3. Dans la colonne Nom, recherchez le compte de service Cloud Pub/Sub, puis cliquez sur Modifier le compte principal sur la ligne correspondante.
    4. Cliquez sur Ajouter un rôle. ou Ajouter un autre rôle
    5. Dans la liste Sélectionner un rôle, définissez un filtre sur Créateur de jetons du compte de service, puis sélectionnez le rôle.
    6. Cliquez sur Enregistrer.
  11. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  12. Cloud Shell prend en charge les étapes de ligne de commande de ce tutoriel.

gcloud

  1. Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
  2. Install the Google Cloud CLI.
  3. To initialize the gcloud CLI, run the following command:

    gcloud init
  4. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Enable the Artifact Registry, Cloud Build, Cloud Run, Cloud Storage, Compute Engine, Eventarc, and Workflows APIs:

    gcloud services enable artifactregistry.googleapis.com cloudbuild.googleapis.com compute.googleapis.com run.googleapis.com storage.googleapis.com eventarc.googleapis.com workflows.googleapis.com
  7. Set up authentication:

    1. Create the service account:

      gcloud iam service-accounts create SERVICE_ACCOUNT_NAME

      Replace SERVICE_ACCOUNT_NAME with a name for the service account.

    2. Grant roles to the service account. Run the following command once for each of the following IAM roles: roles/eventarc.eventReceiver, roles/logging.logWriter, roles/run.admin, roles/storage.objectCreator, roles/workflows.invoker :

      gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=ROLE

      Replace the following:

      • SERVICE_ACCOUNT_NAME: the name of the service account
      • PROJECT_ID: the project ID where you created the service account
      • ROLE: the role to grant
  8. Install the Google Cloud CLI.
  9. To initialize the gcloud CLI, run the following command:

    gcloud init
  10. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  11. Make sure that billing is enabled for your Google Cloud project.

  12. Enable the Artifact Registry, Cloud Build, Cloud Run, Cloud Storage, Compute Engine, Eventarc, and Workflows APIs:

    gcloud services enable artifactregistry.googleapis.com cloudbuild.googleapis.com compute.googleapis.com run.googleapis.com storage.googleapis.com eventarc.googleapis.com workflows.googleapis.com
  13. Set up authentication:

    1. Create the service account:

      gcloud iam service-accounts create SERVICE_ACCOUNT_NAME

      Replace SERVICE_ACCOUNT_NAME with a name for the service account.

    2. Grant roles to the service account. Run the following command once for each of the following IAM roles: roles/eventarc.eventReceiver, roles/logging.logWriter, roles/run.admin, roles/storage.objectCreator, roles/workflows.invoker :

      gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=ROLE

      Replace the following:

      • SERVICE_ACCOUNT_NAME: the name of the service account
      • PROJECT_ID: the project ID where you created the service account
      • ROLE: the role to grant
  14. Si vous avez activé l'agent de service Cloud Pub/Sub le 8 avril 2021 ou à une date antérieure, attribuez le rôle Créateur de jetons du compte de service (roles/iam.serviceAccountTokenCreator) au compte de service pour accepter les requêtes push Pub/Sub authentifiées. Sinon, ce rôle est attribué par défaut :
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-pubsub.iam.gserviceaccount.com \
        --role=roles/iam.serviceAccountTokenCreator
  15. Remplacez PROJECT_NUMBER par votre numéro de projet Google Cloud. Vous pouvez trouver le numéro de votre projet sur la page Bienvenue de la console Google Cloud ou en exécutant la commande suivante :

    gcloud projects describe PROJECT_ID --format='value(projectNumber)'

Créer un job Cloud Run

Ce tutoriel utilise un exemple de code que vous pouvez trouver sur GitHub. Le script de déploiement crée une image de conteneur pour créer une tâche Cloud Run. Le script crée également un bucket Cloud Storage. La Le job Cloud Run lit toutes les données d'événement stockées dans bucket Cloud Storage, puis imprime les données d'événement.

  1. Si vous exécutez le script de déploiement dans Cloud Shell et que le Compte de service Compute Engine par défaut ne dispose pas du rôle Éditeur, accordez les rôles suivants sur le projet à Compte de service Compute Engine par défaut. (Sinon, vous pouvez ignorer et clonez le dépôt de l'exemple d'application à l'étape suivante.)

    1. Accordez le Rôle de rédacteur Artifact Registry (roles/artifactregistry.writer):

      gcloud projects add-iam-policy-binding PROJECT_ID \
          --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \
          --role=roles/artifactregistry.writer

      Remplacez PROJECT_NUMBER par votre numéro de projet Google Cloud. Vous pouvez trouver le numéro de votre projet sur la page Bienvenue de la console Google Cloud ou en exécutant la commande suivante :

      gcloud projects describe PROJECT_ID --format='value(projectNumber)'

    2. Attribuez le rôle Utilisateur des objets de l'espace de stockage (roles/storage.objectUser) :

      gcloud projects add-iam-policy-binding PROJECT_ID \
          --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \
          --role=roles/storage.objectUser
    3. Attribuez le rôle Rédacteur de journaux de journalisation (roles/logging.logWriter) :

      gcloud projects add-iam-policy-binding PROJECT_ID \
          --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \
          --role=roles/logging.logWriter
  2. Récupérez l'exemple de code en clonant le dépôt de l'exemple d'application sur votre ordinateur local :

    git clone https://github.com/GoogleCloudPlatform/workflows-demos.git

    Vous pouvez également télécharger l'exemple en tant que fichier ZIP.

  3. Accédez au répertoire qui contient l'exemple de code :

    cd workflows-demos/cloud-run-jobs-payload-gcs/message-payload-job
  4. Créez la tâche Cloud Run en exécutant le script de déploiement :

    ./deploy-job.sh

Le script crée un bucket Cloud Storage nommé message-payload-PROJECT_ID, où PROJECT_ID est l'ID de votre projet Google Cloud. Une tâche Cloud Run nommée message-payload-job est également créée.

Déployer un workflow qui exécute le job Cloud Run

Définir et déployer un workflow qui exécute le job Cloud Run que vous venez de créer. Une définition de workflow est constituée d'une série d'étapes décrites à l'aide de la syntaxe Workflows.

Le workflow reçoit un événement, les enregistre dans un bucket Cloud Storage puis exécute un job Cloud Run pour traiter l'événement données.

Console

  1. Dans la console Google Cloud, accédez à la page Workflows :

    Accéder à "Workflows"

  2. Cliquez sur  Créer.

  3. Saisissez un nom pour le nouveau workflow, par exemple message-payload-workflow.

  4. Choisissez une région appropriée, par exemple us-central1.

  5. Dans le champ Compte de service, sélectionnez le compte de service que vous avez créé précédemment.

    Le compte de service sert d'identité au workflow. Vous devriez avoir les rôles suivants sont déjà attribués au compte de service:

    • Cloud Run Admin (Administrateur Cloud Run) : permet d'exécuter des jobs Cloud Run.
    • Rédacteur de journaux : pour écrire des entrées de journal
    • Créateur d'objets de l'espace de stockage : permet de créer des objets dans Cloud Storage.
  6. Cliquez sur Suivant.

  7. Dans l'éditeur de workflow, saisissez la définition suivante pour votre workflow:

    main:
        params: [event]
        steps:
            - init:
                assign:
                    - project_id: ${sys.get_env("GOOGLE_CLOUD_PROJECT_ID")}
                    - event_bucket: ${"message-payload-" + project_id}
                    - event_file: ${event.id + ".data.json"}
                    - job_name: message-payload-job
                    - job_location: us-central1
            - log_event:
                call: sys.log
                args:
                    data: ${event}
            - write_payload_to_gcs:
                call: http.post
                args:
                    url: ${"https://storage.googleapis.com/upload/storage/v1/b/" + event_bucket + "/o"}
                    auth:
                        type: OAuth2
                    query:
                        name: ${event_file}
                    body:
                        ${event.data}
            - run_job_to_process_payload:
                call: googleapis.run.v1.namespaces.jobs.run
                args:
                    name: ${"namespaces/" + project_id + "/jobs/" + job_name}
                    location: ${job_location}
                    body:
                        overrides:
                            containerOverrides:
                                env:
                                    - name: INPUT_BUCKET
                                      value: ${event_bucket}
                                    - name: INPUT_FILE
                                      value: ${event_file}
                result: job_execution
            - finish:
                return: ${job_execution}
  8. Cliquez sur Déployer.

gcloud

  1. Créez un fichier de code source pour votre workflow :

    touch message-payload-workflow.yaml
  2. Copiez la définition de workflow suivante dans message-payload-workflow.yaml:

    main:
        params: [event]
        steps:
            - init:
                assign:
                    - project_id: ${sys.get_env("GOOGLE_CLOUD_PROJECT_ID")}
                    - event_bucket: ${"message-payload-" + project_id}
                    - event_file: ${event.id + ".data.json"}
                    - job_name: message-payload-job
                    - job_location: us-central1
            - log_event:
                call: sys.log
                args:
                    data: ${event}
            - write_payload_to_gcs:
                call: http.post
                args:
                    url: ${"https://storage.googleapis.com/upload/storage/v1/b/" + event_bucket + "/o"}
                    auth:
                        type: OAuth2
                    query:
                        name: ${event_file}
                    body:
                        ${event.data}
            - run_job_to_process_payload:
                call: googleapis.run.v1.namespaces.jobs.run
                args:
                    name: ${"namespaces/" + project_id + "/jobs/" + job_name}
                    location: ${job_location}
                    body:
                        overrides:
                            containerOverrides:
                                env:
                                    - name: INPUT_BUCKET
                                      value: ${event_bucket}
                                    - name: INPUT_FILE
                                      value: ${event_file}
                result: job_execution
            - finish:
                return: ${job_execution}
  3. Déployez le workflow en saisissant la commande suivante :

    gcloud workflows deploy message-payload-workflow \
        --location=us-central1 \
        --source=message-payload-workflow.yaml \
        --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com

    Remplacez les éléments suivants :

    • SERVICE_ACCOUNT_NAME: nom de le compte de service que vous avez créé précédemment
    • PROJECT_ID: ID de votre Projet Google Cloud

    Le compte de service sert d'identité au workflow. Vous devez déjà avoir attribué les rôles suivants au compte de service :

    • roles/logging.logWriter: permet d'écrire des entrées de journal
    • roles/run.admin: permet d'exécuter des jobs Cloud Run.
    • roles/storage.objectCreator: permet de créer des objets dans Cloud Storage.

Le workflow effectue les opérations suivantes :

  1. Étape init : accepte un événement comme argument et définit les variables nécessaires.

  2. Étape log_event : crée une entrée de journal dans Cloud Logging à l'aide de la fonction, sys.log.

  3. Étape write_payload_to_gcs : effectue une requête HTTP POST et écrit les données de la charge utile de l'événement dans un fichier de bucket Cloud Storage.

  4. Étape run_job_to_process_payload : utilise le connecteur de l'API Cloud Run Admin. , googleapis.run.v1.namespaces.jobs.run, pour exécuter le job. Le bucket Cloud Storage et le nom de fichier de données sont transmis en tant que variables de forçage du workflow à la tâche.

  5. Étape finish : renvoie des informations sur l'exécution du job à la suite d'une le workflow.

Créer un sujet Pub/Sub

Créez un sujet Pub/Sub afin de pouvoir y publier un message. Un événement Pub/Sub est utilisé pour montrer comment acheminer un événement à l'aide de Workflows et enregistrer l'événement dans Cloud Storage afin qu'un job Cloud Run puisse traiter les données d'événement.

Console

  1. Dans la console Google Cloud, accédez à la page Sujets.

    Accéder aux sujets

  2. Cliquez sur Créer un sujet.

  3. Dans le champ ID du sujet, saisissez un ID pour le sujet, par exemple message-payload-topic

  4. Conservez l'option Ajouter un abonnement par défaut.

  5. Ne sélectionnez pas les autres options.

  6. Cliquez sur Créer.

gcloud

Pour créer un sujet avec l'ID message-payload-topic, exécutez la commande gcloud pubsub topics create commande:

gcloud pubsub topics create message-payload-topic

Créer un déclencheur Eventarc pour acheminer les événements vers le workflow

Pour exécuter automatiquement le workflow et à son tour la tâche Cloud Run, créez un déclencheur Eventarc qui répond aux événements Pub/Sub et qui achemine les événements vers le workflow. Chaque fois qu'un message est écrit dans le sujet Pub/Sub, l'événement déclenche l'exécution du workflow.

Console

  1. Dans la console Google Cloud, accédez à Page Workflows:

    Accéder à "Workflows"

  2. Cliquez sur le nom de votre workflow, par exemple message-payload-workflow.

  3. Sur la page Détails du workflow, cliquez sur Modifier.

  4. Sur la page Modifier le workflow, dans la section Déclencheurs, cliquez sur Ajouter un déclencheur > Eventarc.

    Le volet Déclencheur Eventarc s'ouvre.

  5. Dans le champ Nom du déclencheur, saisissez un nom pour le déclencheur (par exemple, message-payload-trigger).

  6. Dans la liste Fournisseur d'événements, sélectionnez Cloud Pub/Sub.

  7. Dans la liste Événement, sélectionnez google.cloud.pubsub.topic.v1.messagePublished.

  8. Dans la liste Sélectionner un sujet Cloud Pub/Sub, sélectionnez le le sujet Pub/Sub que vous avez créé précédemment.

  9. Dans le champ Compte de service, sélectionnez le compte de service que vous avez créé précédemment.

    Le compte de service sert d'identité au déclencheur. Vous devez déjà avoir attribué les rôles suivants au compte de service :

    • Eventarc Event Receiver: permet de recevoir des événements.
    • Demandeur de workflows : pour exécuter des workflows
  10. Cliquez sur Enregistrer le déclencheur.

    Le déclencheur Eventarc s'affiche désormais dans la section Déclencheurs de la page Modifier le workflow.

  11. Cliquez sur Suivant.

  12. Cliquez sur Déployer.

gcloud

Créez un déclencheur Eventarc en exécutant la commande suivante:

gcloud eventarc triggers create message-payload-trigger \
    --location=us-central1 \
    --destination-workflow=message-payload-workflow \
    --destination-workflow-location=us-central1 \
    --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \
    --transport-topic=projects/PROJECT_ID/topics/message-payload-topic \
    --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com

Remplacez les éléments suivants :

  • PROJECT_ID : ID de votre projet Google Cloud
  • SERVICE_ACCOUNT_NAME : nom du compte de service que vous avez créé précédemment.

Le compte de service sert d'identité au déclencheur. Vous devriez avoir les rôles suivants sont déjà attribués au compte de service:

  • roles/eventarc.eventReceiver : pour recevoir des événements
  • roles/workflows.invoker: pour exécuter des workflows

Déclencher le workflow

Testez le système de bout en bout en publiant un message sur Pub/Sub et la génération d'un événement. Pour en savoir plus, consultez déclencher un workflow avec des événements ou des messages Pub/Sub.

  1. Envoyer un message au sujet Pub/Sub pour générer un événement :

    gcloud pubsub topics publish message-payload-topic --message="Hello World"
    

    L'événement est acheminé vers le workflow qui enregistre le message d'événement, enregistre dans le bucket Cloud Storage, puis exécute job Cloud Run pour traiter les données enregistrées Cloud Storage. Cette opération peut prendre une minute.

  2. Vérifiez que le job Cloud Run s'est exécuté comme prévu en affichant les exécutions du job:

    gcloud run jobs executions list --job=message-payload-job

    Une nouvelle exécution de job doit s'afficher dans le résultat.

  3. Pour afficher les entrées de journal liées aux événements créées en déclenchant le workflow, exécutez la commande suivante : la commande suivante:

    gcloud logging read "resource.type=cloud_run_job AND textPayload:Payload"
    
  4. Recherchez une entrée de journal semblable à ceci :

    textPayload: "Payload: {'message': {'data': 'SGVsbG8gV29ybGQ=', 'messageId': '8834108235224238',\
    \ 'publishTime': '2023-09-20T17:07:52.921Z'}, 'subscription': 'projects/MY_PROJECT/subscriptions/eventarc-us-central1-message-payload-trigger-sub-741'}"
    ...
    resource:
    labels:
      job_name: message-payload-job
      location: us-central1
      project_id: MY_PROJECT
    type: cloud_run_job
    textPayload: Processing message payload gs://message-payload-MY_PROJECT/8254002311197919.data.json
    
  5. Vous pouvez vérifier que les résultats sont conformes aux attentes en affichant les données d'événement dans l'objet bucket Cloud Storage.

    1. Récupérez le nom de votre bucket :

      gcloud storage ls

      Le résultat ressemble à ce qui suit :

      gs://message-payload-PROJECT_ID/

    2. Répertoriez les objets de votre bucket:

      gcloud storage ls gs://message-payload-PROJECT_ID/** --recursive

      La sortie devrait ressembler à ce qui suit :

      gs://message-payload-PROJECT_ID/OBJECT_ID.data.json

      Notez la valeur de OBJECT_ID afin de pouvoir l'utiliser à l'étape suivante.

    3. Téléchargez l'objet dans votre bucket sous forme de fichier:

      gcloud storage cp gs://message-payload-PROJECT_ID/OBJECT_ID.data.json message-event.txt

      Remplacez OBJECT_ID par l'ID renvoyé à l'étape précédente.

    4. Dans un éditeur de texte, ouvrez le fichier message-event.txt. Le corps de l'événement écrit dans le fichier doit se présenter comme suit :

      {
        "message": {
          "data": "SGVsbG8gV29ybGQ=",
          "messageId": "8254002311197919",
          "publishTime": "2023-09-20T16:54:29.312Z"
        },
        "subscription": "projects/MY_PROJECT/subscriptions/eventarc-us-central1-message-payload-trigger-sub-741"
      }
      

      Notez que si vous décodez la valeur de données de SGVsbG8gV29ybGQ= à partir de son format Base64, le message "Hello World" est renvoyé.

Effectuer un nettoyage

Si vous avez créé un projet pour ce tutoriel, supprimez-le. Si vous avez utilisé un projet existant et que vous souhaitez le conserver sans les modifications du présent tutoriel, supprimez les ressources créées pour ce tutoriel.

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.

Pour supprimer le projet :

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Supprimer les ressources du tutoriel

Supprimez les ressources que vous avez créées dans ce tutoriel:

  1. Supprimez le sujet Pub/Sub.

  2. Supprimer le déclencheur Eventarc.

  3. Supprimez le workflow Workflows.

  4. Supprimez le job Cloud Run.

  5. Supprimer le bucket Cloud Storage.

Étape suivante