Guía de inicio rápido: Recibe eventos mediante Pub/Sub

En esta guía de inicio rápido, se muestra cómo implementar un servicio de Cloud Run no autenticado que recibe eventos mediante Pub/Sub.

En esta guía de inicio rápido, podrás hacer lo siguiente:

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

  2. Crear un activador de Eventarc.

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

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 proyectos

  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 esta guía de inicio rápido:
    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.

  1. Clone 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. Implementa la imagen del contenedor en Cloud Run:

    gcloud run deploy helloworld-events-pubsub-quickstart \
        --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 cuando se publica un mensaje en el tema de Pub/Sub.

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

Envía y visualiza eventos en un tema de Pub/Sub

Los eventos de Eventarc son mensajes publicados en un tema de Pub/Sub. Para enviar eventos mediante un tema de Pub/Sub, sigue estos pasos:

  1. 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)')
    
  2. 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.

  3. 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-quickstart.
    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.

  4. Busca el mensaje “Hello Runner!”.

¡Felicitaciones! Implementaste con éxito un servicio de receptor de eventos en Cloud Run, creaste un activador de Eventarc, generaste un evento de Pub/Sub y lo viste en los registros de Cloud Run.

Limpia

Si bien Cloud Run no cobra cuando el servicio no se usa, es posible que se te cobre por almacenar la imagen del contenedor en Container Registry, Recursos de Eventarc y para Mensajes de Pub/Sub.

Puedes borrar tu imagen, borrar el tema de Pub/Sub y borrar la suscripción a Pub/Sub. Para borrar el activador de Eventarc, ejecuta el siguiente comando:

gcloud eventarc triggers delete events-pubsub-trigger

Como alternativa, puedes borrar el proyecto de Cloud Console para evitar que se generen cargos. Si borras el proyecto de Cloud, se dejan de facturar todos los recursos que usaste en ese proyecto.

  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.

¿Qué sigue?