Ejecuta un trabajo de Cloud Run que procese datos de eventos guardados en Cloud Storage


Puedes usar Workflows para ejecutar un trabajo de Cloud Run como parte de un flujo de trabajo que realiza un procesamiento de datos más complejo o que organiza un sistema de trabajos existentes.

En este instructivo, se muestra cómo usar Workflows para ejecutar un trabajo de Cloud Run que procesa datos de eventos almacenados en un bucket de Cloud Storage. Almacenar la carga útil del evento en un bucket de Cloud Storage te permite encriptar los datos con claves de encriptación administradas por el cliente, lo que no es posible si pasas los datos del evento como variables de entorno al trabajo de Cloud Run.

En el siguiente diagrama, se proporciona una descripción general de alto nivel:

El activador de Eventarc enruta el evento de Pub/Sub a Workflows y se guarda en el bucket de
Cloud Storage. El trabajo de Cloud Run procesa datos de eventos almacenados en un bucket.

Objetivos

En este instructivo, realizarás las siguientes acciones:

  1. Crear un trabajo de Cloud Run que procese datos de eventos almacenados en un bucket de Cloud Storage
  2. Implementa un flujo de trabajo que haga lo siguiente:
    1. Recibe un evento como un argumento.
    2. Escribe los datos de la carga útil del evento en el bucket de Cloud Storage.
    3. Usa el conector de la API de Cloud Run Admin para ejecutar el trabajo de Cloud Run.
  3. Crear un tema de Pub/Sub para poder publicar un mensaje en él En este instructivo, se usa un evento de Pub/Sub como ejemplo de cómo enrutar eventos mediante Workflows y guardar el evento en Cloud Storage para que un trabajo de Cloud Run pueda procesar los datos del evento.
  4. Crear un activador de Eventarc que ejecute el flujo de trabajo cuando se escribe un mensaje en el tema de Pub/Sub
  5. Activar el flujo de trabajo mediante la escritura de un mensaje en el tema de Pub/Sub

Costos

En este documento, usarás los siguientes componentes facturables de Google Cloud:

Para generar una estimación de costos en función del uso previsto, usa la calculadora de precios. Es posible que los usuarios nuevos de Google Cloud califiquen para obtener una prueba gratuita.

Antes de comenzar

Es posible que las restricciones de seguridad que define tu organización no te permitan completar los siguientes pasos. Para obtener información sobre la solución de problemas, consulta Desarrolla aplicaciones en un entorno de Google Cloud restringido.

Antes de comenzar este instructivo, debes habilitar APIs específicas y crear una cuenta de servicio administrada por el usuario. Debes otorgar a la cuenta de servicio los roles y permisos necesarios para que puedas enrutar eventos mediante un activador de Eventarc y ejecutar un flujo de trabajo.

Console

  1. Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  3. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

  4. Habilita las API de Cloud Build, Cloud Run, Cloud Storage, Eventarc, and Workflows.

    Habilita las API

  5. Crear una cuenta de servicio:

    1. En la consola de Google Cloud, ve a la página Crear cuenta de servicio.

      Ve a Crear cuenta de servicio
    2. Elige tu proyecto.
    3. Ingresa un nombre en el campo Nombre de cuenta de servicio. La consola de Google Cloud completa el campo ID de cuenta de servicio en función de este nombre.

      Opcional: en el campo Descripción de la cuenta de servicio, ingresa una descripción. Por ejemplo, Service account for quickstart.

    4. Haz clic en Crear y continuar.
    5. Otorga los siguientes roles a la cuenta de servicio: Cloud Run Admin, Eventarc Event Receiver, Logs Writer, Storage Object Creator, Workflows Invoker.

      Para otorgar un rol, busca la lista Selecciona un rol y, luego, selecciona el rol.

      Para otorgar roles adicionales, haz clic en Agregar otro rol y agrega cada rol adicional.

    6. Haga clic en Continuar.
    7. Haz clic en Listo para terminar de crear la cuenta de servicio.

  6. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  7. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

  8. Habilita las API de Cloud Build, Cloud Run, Cloud Storage, Eventarc, and Workflows.

    Habilita las API

  9. Crear una cuenta de servicio:

    1. En la consola de Google Cloud, ve a la página Crear cuenta de servicio.

      Ve a Crear cuenta de servicio
    2. Elige tu proyecto.
    3. Ingresa un nombre en el campo Nombre de cuenta de servicio. La consola de Google Cloud completa el campo ID de cuenta de servicio en función de este nombre.

      Opcional: en el campo Descripción de la cuenta de servicio, ingresa una descripción. Por ejemplo, Service account for quickstart.

    4. Haz clic en Crear y continuar.
    5. Otorga los siguientes roles a la cuenta de servicio: Cloud Run Admin, Eventarc Event Receiver, Logs Writer, Storage Object Creator, Workflows Invoker.

      Para otorgar un rol, busca la lista Selecciona un rol y, luego, selecciona el rol.

      Para otorgar roles adicionales, haz clic en Agregar otro rol y agrega cada rol adicional.

    6. Haga clic en Continuar.
    7. Haz clic en Listo para terminar de crear la cuenta de servicio.

  10. Si habilitaste el agente de servicio de Cloud Pub/Sub el 8 de abril de 2021 o antes, para admitir las solicitudes push autenticadas de Pub/Sub, otorga la función de creador de tokens de cuentas de servicio (roles/iam.serviceAccountTokenCreator) a la cuenta de servicio administrada por Google. De lo contrario, esta función se otorga de forma predeterminada:
    1. En la consola de Google Cloud, ve a la página IAM.

      Ir a IAM

    2. Selecciona la casilla de verificación Incluir asignaciones de roles proporcionadas por Google.
    3. En la columna Nombre, busca la Cuenta de servicio de Cloud Pub/Sub y, luego, haz clic en Editar principal en la fila correspondiente.
    4. Haz clic en Agregar rol o Agregar otro rol.
    5. En la lista Selecciona un rol, filtra por Creador de tokens de cuenta de servicio y, luego, selecciona el rol.
    6. Haz clic en Guardar.
  11. En la consola de Google Cloud, activa Cloud Shell.

    Activar Cloud Shell

    En la parte inferior de la consola de Google Cloud, se inicia una sesión de Cloud Shell en la que se muestra una ventana de línea de comandos. Cloud Shell es un entorno de shell con Google Cloud CLI ya instalada y con valores ya establecidos para el proyecto actual. La sesión puede tardar unos segundos en inicializarse.

  12. Cloud Shell es compatible con los pasos de la línea de comandos de este instructivo.

gcloud

  1. Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. Instala Google Cloud CLI.
  3. Para inicializar la CLI de gcloud, ejecuta el siguiente comando:

    gcloud init
  4. Crea o selecciona un proyecto de Google Cloud.

    • Crea un proyecto de Google Cloud:

      gcloud projects create PROJECT_ID

      Reemplaza PROJECT_ID por un nombre para el proyecto de Google Cloud que estás creando.

    • Selecciona el proyecto de Google Cloud que creaste:

      gcloud config set project PROJECT_ID

      Reemplaza PROJECT_ID por el nombre del proyecto de Google Cloud.

  5. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

  6. Habilita las APIs de Cloud Build, Cloud Run, Cloud Storage, Eventarc, and Workflows:

    gcloud services enable cloudbuild.googleapis.com run.googleapis.com storage.googleapis.com eventarc.googleapis.com workflows.googleapis.com
  7. Configura la autenticación:

    1. Crea la cuenta de servicio:

      gcloud iam service-accounts create SERVICE_ACCOUNT_NAME

      Reemplaza SERVICE_ACCOUNT_NAME por un nombre para la cuenta de servicio.

    2. Otorga roles a la cuenta de servicio. Ejecuta el siguiente comando una vez para cada uno de los siguientes roles de IAM: 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

      Reemplaza lo siguiente:

      • SERVICE_ACCOUNT_NAME: el nombre de la cuenta de servicio
      • PROJECT_ID: el ID del proyecto en el que creaste la cuenta de servicio
      • ROLE: el rol a otorgar
  8. Instala Google Cloud CLI.
  9. Para inicializar la CLI de gcloud, ejecuta el siguiente comando:

    gcloud init
  10. Crea o selecciona un proyecto de Google Cloud.

    • Crea un proyecto de Google Cloud:

      gcloud projects create PROJECT_ID

      Reemplaza PROJECT_ID por un nombre para el proyecto de Google Cloud que estás creando.

    • Selecciona el proyecto de Google Cloud que creaste:

      gcloud config set project PROJECT_ID

      Reemplaza PROJECT_ID por el nombre del proyecto de Google Cloud.

  11. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

  12. Habilita las APIs de Cloud Build, Cloud Run, Cloud Storage, Eventarc, and Workflows:

    gcloud services enable cloudbuild.googleapis.com run.googleapis.com storage.googleapis.com eventarc.googleapis.com workflows.googleapis.com
  13. Configura la autenticación:

    1. Crea la cuenta de servicio:

      gcloud iam service-accounts create SERVICE_ACCOUNT_NAME

      Reemplaza SERVICE_ACCOUNT_NAME por un nombre para la cuenta de servicio.

    2. Otorga roles a la cuenta de servicio. Ejecuta el siguiente comando una vez para cada uno de los siguientes roles de IAM: 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

      Reemplaza lo siguiente:

      • SERVICE_ACCOUNT_NAME: el nombre de la cuenta de servicio
      • PROJECT_ID: el ID del proyecto en el que creaste la cuenta de servicio
      • ROLE: el rol a otorgar
  14. Si habilitaste el agente de servicio de Cloud Pub/Sub el 8 de abril de 2021 o antes de esa fecha, para admitir las solicitudes de envío de Pub/Sub autenticadas, otorga la función Creador de tokens de cuenta de servicio (roles/iam.serviceAccountTokenCreator) a la cuenta de servicio administrada por Google. De lo contrario, este rol se otorga de forma predeterminada:
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-pubsub.iam.gserviceaccount.com \
        --role=roles/iam.serviceAccountTokenCreator
  15. Reemplaza PROJECT_NUMBER por el número de proyecto de Google Cloud. Para encontrar el número del proyecto, ve a la página de bienvenida de la consola de Google Cloud o ejecuta el siguiente comando:

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

Crea un trabajo de Cloud Run

En este instructivo, se usa código de muestra que puedes encontrar en GitHub. La secuencia de comandos de implementación compila una imagen de contenedor para crear un trabajo de Cloud Run. La secuencia de comandos también crea un bucket de Cloud Storage. El trabajo de Cloud Run lee los datos de eventos almacenados en el bucket de Cloud Storage y, luego, imprime los datos del evento.

  1. Clona el repositorio de la app de muestra en tu máquina local para obtener el código de muestra:

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

    De manera opcional, puedes descargar la muestra como un archivo ZIP.

  2. Dirígete al directorio que contiene el código de muestra:

    cd workflows-demos/cloud-run-jobs-payload-gcs/message-payload-job
    
  3. Crea el trabajo de Cloud Run mediante la ejecución de la secuencia de comandos de implementación:

    ./deploy-job.sh
    

La secuencia de comandos crea un bucket de Cloud Storage con el nombre message-payload-PROJECT_ID, en el que PROJECT_ID es el ID de tu proyecto de Google Cloud. También se crea un trabajo de Cloud Run llamado message-payload-job.

Implementa un flujo de trabajo que ejecute el trabajo de Cloud Run

Define e implementa un flujo de trabajo que ejecute el trabajo de Cloud Run que acabas de crear. Una definición de flujo de trabajo se compone de una serie de pasos que se describen mediante la sintaxis de Workflows.

El flujo de trabajo recibe un evento, guarda los datos del evento en un bucket de Cloud Storage y, luego, ejecuta un trabajo de Cloud Run para procesar los datos del evento.

Console

  1. En la consola de Google Cloud, ve a la página Flujos de trabajo:

    Ir a Workflows

  2. Haz clic en Crear.

  3. Ingresa un nombre para el flujo de trabajo nuevo, como message-payload-workflow.

  4. Elige una región adecuada; por ejemplo, us-central1.

  5. En el campo Cuenta de servicio, selecciona la cuenta de servicio que creaste antes.

    La cuenta de servicio sirve como la identidad del flujo de trabajo. Ya deberías haber otorgado los siguientes roles a la cuenta de servicio:

    • Administrador de Cloud Run: Para ejecutar trabajos de Cloud Run
    • Escritor de registros: Para escribir entradas de registro
    • Creador de objetos de almacenamiento: Se usa para crear objetos en Cloud Storage.
  6. Haz clic en Siguiente.

  7. En el editor de flujo de trabajo, ingresa la siguiente definición para tu flujo de trabajo:

    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. Haz clic en Implementar.

gcloud

  1. Crea un archivo de código fuente para tu flujo de trabajo:

    touch message-payload-workflow.yaml
    
  2. Copia la siguiente definición de flujo de trabajo en 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. Para implementar el flujo de trabajo, ingresa el siguiente comando:

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

    Reemplaza lo siguiente:

    • SERVICE_ACCOUNT_NAME: Es el nombre de la cuenta de servicio que creaste antes.
    • PROJECT_ID por el ID del proyecto de Google Cloud

    La cuenta de servicio sirve como la identidad del flujo de trabajo. Ya deberías haber otorgado los siguientes roles a la cuenta de servicio:

    • roles/logging.logWriter: Para escribir entradas de registro
    • roles/run.admin: Para ejecutar trabajos de Cloud Run
    • roles/storage.objectCreator: Para crear objetos en Cloud Storage

El flujo de trabajo hace lo siguiente:

  1. Paso init: Acepta un evento como argumento y establece las variables necesarias.

  2. Paso log_event: Crea una entrada de registro en Cloud Logging con la función sys.log.

  3. Paso write_payload_to_gcs: Realiza una solicitud HTTP POST y escribe los datos de carga útil del evento en un archivo de bucket de Cloud Storage.

  4. Paso de run_job_to_process_payload: Usa el método del conector de la API de Cloud Run Admin, googleapis.run.v1.namespaces.jobs.run, para ejecutar el trabajo. El bucket de Cloud Storage y el nombre del archivo de datos se pasan como variables de anulación del flujo de trabajo al trabajo.

  5. Paso finish: Muestra información sobre la ejecución del trabajo como resultado del flujo de trabajo.

Crear un tema de Pub/Sub

Crear un tema de Pub/Sub para poder publicar un mensaje en él Un evento de Pub/Sub se usa para demostrar cómo enrutar un evento mediante Workflows y guardar el evento en Cloud Storage para que un trabajo de Cloud Run pueda procesar los datos del evento.

Console

  1. En la consola de Google Cloud, ve a la página Temas.

    Ir a temas

  2. Haz clic en Crear tema.

  3. En el campo ID del tema, ingresa un ID, como message-payload-topic.

  4. Mantén la opción Agregar una suscripción predeterminada.

  5. No selecciones las otras opciones.

  6. Haz clic en Crear.

gcloud

Para crear un tema con el ID message-payload-topic, ejecuta el comando gcloud pubsub topics create:

gcloud pubsub topics create message-payload-topic

Crea un activador de Eventarc para enrutar eventos al flujo de trabajo

Para ejecutar automáticamente el flujo de trabajo y, a su vez, el trabajo de Cloud Run, crea un activador de Eventarc que responda a los eventos de Pub/Sub y que enrute los eventos al flujo de trabajo. Cada vez que se escribe un mensaje en el tema de Pub/Sub, el evento activa una ejecución del flujo de trabajo.

Console

  1. En la consola de Google Cloud, ve a la página Flujos de trabajo:

    Ir a Workflows

  2. Haz clic en el nombre de tu flujo de trabajo, como message-payload-workflow.

  3. En la página Detalles del flujo de trabajo, haz clic en Editar.

  4. En la página Editar flujo de trabajo, en la sección Activadores, haz clic en Agregar activador nuevo > Eventarc.

    Se abrirá el panel Evento de Eventarc.

  5. En el campo Nombre del activador, ingresa un nombre para el activador, como message-payload-trigger.

  6. En la lista Proveedor del evento, selecciona Cloud Pub/Sub.

  7. En la lista Evento, selecciona google.cloud.pubsub.topic.v1.messagePublished.

  8. En la lista Selecciona un tema de Cloud Pub/Sub, elige el tema de Pub/Sub que creaste antes.

  9. En el campo Cuenta de servicio, selecciona la cuenta de servicio que creaste antes.

    La cuenta de servicio funciona como la identidad del activador. Ya deberías haber otorgado los siguientes roles a la cuenta de servicio:

    • Receptor de eventos de Eventarc: Para recibir eventos
    • Invocador de flujos de trabajo: Se usa para ejecutar flujos de trabajo.
  10. Haz clic en Guardar activador.

    El activador de Eventarc ahora aparece en la sección Activadores de la página Editar flujo de trabajo.

  11. Haz clic en Siguiente.

  12. Haga clic en Implementar.

gcloud

Para crear un activador de Eventarc, ejecuta el siguiente comando:

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

Reemplaza lo siguiente:

  • PROJECT_IDEl ID de tu proyecto de Google Cloud.
  • SERVICE_ACCOUNT_NAME: Es el nombre de la cuenta de servicio que creaste antes.

La cuenta de servicio funciona como la identidad del activador. Ya deberías haber otorgado los siguientes roles a la cuenta de servicio:

  • roles/eventarc.eventReceiver: Para recibir eventos
  • roles/workflows.invoker: Para ejecutar flujos de trabajo

Activa el flujo de trabajo

Publica un mensaje en el tema de Pub/Sub y genera un evento para probar el sistema de extremo a extremo. Para obtener más información, consulta Activa un flujo de trabajo con eventos o mensajes de Pub/Sub.

  1. Publica un mensaje en el tema de Pub/Sub para generar un evento:

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

    El evento se enruta al flujo de trabajo que registra el mensaje del evento, guarda los datos del evento en el bucket de Cloud Storage y ejecuta el trabajo de Cloud Run para procesar los datos guardados en Cloud Storage. Este proceso puede tardar un minuto.

  2. Para confirmar que el trabajo de Cloud Run se ejecutó como se esperaba, visualiza las ejecuciones del trabajo:

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

    Deberías ver una ejecución de trabajo nueva en el resultado.

  3. Para ver las entradas de registro relacionadas con eventos creadas mediante la activación del flujo de trabajo, ejecuta el siguiente comando:

    gcloud logging read "resource.type=cloud_run_job AND textPayload:Payload"
    
  4. Busca una entrada de registro similar a lo siguiente:

    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. Puedes confirmar que los resultados son los esperados si consultas los datos de eventos en el objeto del bucket de Cloud Storage.

    1. Recupera el nombre de tu bucket:

      gsutil ls

      El resultado es similar al siguiente:

      gs://message-payload-PROJECT_ID/

    2. Haz una lista de los objetos en tu bucket:

      gsutil ls -r gs://message-payload-PROJECT_ID/**

      El resultado debería ser similar al siguiente ejemplo:

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

      Toma nota de OBJECT_ID para usar en el siguiente paso.

    3. Descarga el objeto en tu bucket como un archivo:

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

      Reemplaza OBJECT_ID por el ID que se mostró en el paso anterior.

    4. En un editor de texto, abre el archivo message-event.txt. El cuerpo del evento escrito en el archivo debe ser similar al siguiente:

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

      Ten en cuenta que, si decodificas el valor de datos de SGVsbG8gV29ybGQ= de su formato Base64, se muestra "Hello World".

Limpia

Si creaste un proyecto nuevo para este instructivo, bórralo. Si usaste un proyecto existente y deseas conservarlo sin los cambios que se agregaron en este instructivo, borra los recursos creados para el instructivo.

Borra el proyecto

La manera más fácil de eliminar la facturación es borrar el proyecto que creaste para el instructivo.

Para borrar el proyecto, haz lo siguiente:

  1. En la consola de Google Cloud, ve a la página Administrar recursos.

    Ir a Administrar recursos

  2. En la lista de proyectos, elige el proyecto que quieres borrar y haz clic en Borrar.
  3. En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrar el proyecto.

Elimina recursos de instructivos

Borra los recursos que creaste en este instructivo:

  1. Borra el tema de Pub/Sub.

  2. Borrar el activador de Eventarc.

  3. Borra el flujo de trabajo de Workflows.

  4. Borra el trabajo de Cloud Run.

  5. Borra el depósito de Cloud Storage

¿Qué sigue?