Recibe un evento de Pub/Sub

En esta página del instructivo, se muestra cómo implementar un servicio no autenticado (completamente administrado) de Cloud Run que recibe eventos mediante Pub/Sub.

Objetivos

En este instructivo, podrás:

  1. Implementar un servicio de receptor de eventos en Cloud Run

  2. Crear un activador de eventos

  3. Publicar un mensaje en un tema de Pub/Sub para generar un evento y visualizarlo en los registros de Cloud Run (completamente administrado)

Costos

En este instructivo, se usan componentes facturables de Google Cloud, incluidos los siguientes:

Usa la calculadora de precios para generar una estimación de los costos según el uso previsto.

Es posible que los usuarios nuevos de Google Cloud sean aptos para obtener una prueba gratuita.

Antes de comenzar

  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 Google Cloud Console, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyecto

  3. Asegúrate de que la facturación esté habilitada para tu proyecto de Cloud. Descubre cómo confirmar que tienes habilitada la facturación en un proyecto.

  4. Habilita las API de Cloud Run, Cloud Logging, Cloud Build, Pub/Sub, Eventarc.

    Habilita las API

  5. Instala e inicializa el SDK de Cloud.
  6. Actualiza los componentes de gcloud:
    gcloud components update
  7. Accede con tu cuenta:
    gcloud auth login
  8. Establece las variables de configuración que se usan en este instructivo:
    gcloud config set project PROJECT_ID
    gcloud config set run/region us-central1
    gcloud config set run/platform managed
    gcloud config set eventarc/location us-central1
    
    En el ejemplo anterior, PROJECT_ID es el ID del proyecto de Google Cloud.

Implementa un receptor de eventos en Cloud Run

Implementa un servicio de Cloud Run que reciba y registre eventos.

Para implementar el servicio del receptor de eventos de muestra, haz lo siguiente:

  1. Clona el repositorio:

    Node.js

    git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git

    De manera opcional, puedes descargar la muestra como un archivo zip y extraerla.

    Python

    git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git

    De manera opcional, puedes descargar la muestra como un archivo zip y extraerla.

    Go

    git clone https://github.com/GoogleCloudPlatform/golang-samples.git

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

    Java

    git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git

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

    Ruby

    git clone https://github.com/GoogleCloudPlatform/ruby-docs-samples.git

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

    C#

    git clone https://github.com/GoogleCloudPlatform/dotnet-docs-samples.git

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

  2. Ve al directorio que contiene el código de muestra de Cloud Run:

    Node.js

    cd nodejs-docs-samples/eventarc/pubsub/

    Python

    cd python-docs-samples/eventarc/pubsub/

    Go

    cd golang-samples/eventarc/pubsub/

    Java

    cd java-docs-samples/eventarc/pubsub/

    Ruby

    cd ruby-docs-samples/eventarc/pubsub/

    C#

    cd dotnet-docs-samples/eventarc/pubsub/
  3. Compila el contenedor y súbelo a Cloud Build:

    gcloud builds submit --tag gcr.io/$(gcloud config get-value project)/events-pubsub
    
  4. Implementar la imagen del contenedor en Cloud Run

    gcloud run deploy helloworld-events-pubsub-tutorial \
        --image gcr.io/$(gcloud config get-value project)/events-pubsub \
        --allow-unauthenticated
    

Cuando veas la URL del servicio, se completará la implementación.

Crea un activador de Eventarc

El activador de eventos envía mensajes al servicio del receptor de eventos implementado en Cloud Run (completamente administrado) cuando se publica un mensaje en el tema de Pub/Sub.

Sigue estos pasos para crear un activador de Pub/Sub de Eventarc:

  1. Crea un activador para detectar los mensajes de Pub/Sub:

    Nuevo tema Pub/Sub

    gcloud eventarc triggers create events-pubsub-trigger \
      --destination-run-service=helloworld-events-pubsub-tutorial \
      --destination-run-region=us-central1 \
      --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished"
    

    Esto crea un nuevo tema de Pub/Sub y un activador llamado events-pubsub-trigger para este.

    Tema de Pub/Sub existente

    gcloud eventarc triggers create events-pubsub-trigger \
      --destination-run-service=helloworld-events-pubsub-tutorial \
      --destination-run-region=us-central1 \
      --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \
      --transport-topic=projects/PROJECT_ID/topics/TOPIC_NAME
    

    Reemplaza lo siguiente:

    • PROJECT_ID es el ID del proyecto de Google Cloud.
    • TOPIC_NAME es el nombre del tema de Pub/Sub existente.

    Esto crea un activador llamado events-pubsub-trigger para el tema de Pub/Sub existente.

  2. Confirma que el activador se haya creado correctamente:

    gcloud eventarc triggers list --location=us-central1
    
  3. Busca y establece el tema Pub/Sub como una variable de entorno:

    export RUN_TOPIC=$(gcloud eventarc triggers describe events-pubsub-trigger \
        --format='value(transport.pubsub.topic)')
    
  4. Envía un mensaje al tema de Pub/Sub para generar un evento:

    gcloud pubsub topics publish $RUN_TOPIC --message "Runner"
    

    El evento se envía al servicio de Cloud Run, que registra el mensaje del evento.

  5. Para ver el mensaje del evento, ve a los registros del servicio de Cloud Run:

    1. Ve a Google Cloud Console.
    2. Haz clic en el servicio helloworld-events-pubsub-tutorial.
    3. Selecciona la pestaña Registros.

      Los registros pueden tomar un tiempo en aparecer. Si no los ves de inmediato, vuelve a revisar en unos minutos.

  6. Busca el mensaje “Hello Runner!”.

Realice una limpieza

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, sigue estos pasos:

  1. En Cloud Console, 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.

Borra los recursos del instructivo

  1. Usa este comando para borrar el servicio de Cloud Run que implementaste en este instructivo:

    gcloud run services delete SERVICE-NAME

    En el ejemplo anterior, SERVICE-NAME es el nombre del servicio que elegiste.

    También puedes borrar los servicios de Cloud Run desde Google Cloud Console.

  2. Quita las opciones de configuración predeterminadas de gcloud que agregaste durante la configuración del instructivo.

    Quita la configuración de la región:

     gcloud config unset run/region
    
  3. Quita la configuración del proyecto:

     gcloud config unset project
    
  4. Borra otros recursos de Google Cloud que creaste en este instructivo:

    • Borra el activador:
      gcloud eventarc triggers delete TRIGGER_NAME
      
      Reemplaza TRIGGER_NAME por el nombre de tu activador.

¿Qué sigue?