Configurar notificaciones de Pub/Sub

Puedes recibir notificaciones de los cambios que se hagan en tus repositorios de Google Cloud mediante Pub/Sub. Estas notificaciones te informan cuando un usuario crea un repositorio, elimina un repositorio o envía un cambio a un repositorio. Puedes configurar las notificaciones de repositorios específicos o de todo unGoogle Cloud proyecto.

Para obtener más información sobre Pub/Sub, consulta ¿Qué es Pub/Sub?

Antes de empezar

  • Si aún no lo has hecho, crea un repositorio.
  • Verifica que tienes los permisos adecuados para crear temas y suscripciones. Para obtener más información, consulta Control de acceso.
  • Asegúrate de que tienes una cuenta de servicio que pueda publicar en tu tema. De forma predeterminada, Cloud Source Repositories usa la cuenta de servicio predeterminada de Compute Engine para publicar mensajes. Para obtener más información, consulta Notificaciones de Pub/Sub para Cloud Source Repositories.

Crear un tema de Pub/Sub

Debes crear un tema de Pub/Sub para cada proyecto o repositorio de Cloud Source Repositories del que quieras recibir notificaciones. Puedes crear un tema mediante la Google Cloud consolagcloud o la herramienta de línea de comandos.

Cuando creas un tema, debes usar un URI completo para tu repositorio. El URI cualificado es:

projects/[PROJECT_ID]/topics/[TOPIC_NAME]

Donde:

  • [PROJECT_ID] es el ID de tu proyecto Google Cloud .
  • [TOPIC_NAME] es el nombre del tema.

Para crear un tema, sigue estos pasos.

Consola

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

    Ir a la página Temas

  2. Haz clic en Crear tema.

  3. Introduce un nombre de tema con el URI:

    projects/[PROJECT_ID]/topics/[TOPIC_NAME]
    

    Donde:

    • [PROJECT_ID] es el ID de tu proyecto Google Cloud .
    • [TOPIC_NAME] es el nombre del tema.
  4. Haz clic en Crear.

    Se abrirá la página Detalles del tema.

gcloud

En una ventana de terminal, ejecuta el siguiente comando:

gcloud pubsub topics create projects/[PROJECT_ID]/topics/[TOPIC_NAME]

Donde:

  • [PROJECT_ID] es el ID de tu proyecto Google Cloud .
  • [TOPIC_NAME] es el nombre del tema.

Para obtener más información sobre el comando gcloud pubsub topics, consulta la documentación de topics.

Crear una suscripción de Pub/Sub

Para recibir eventos publicados en un tema, debes crear una suscripción de Pub/Sub.

Una aplicación de suscriptor recibe mensajes del tema de tu repositorio. Los suscriptores pueden responder a los eventos de tu repositorio enviando notificaciones o activando una compilación.

Para crear una suscripción, sigue estos pasos.

Consola

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

    Ir a la página Temas

  2. Haz clic en el nombre del tema de tu proyecto.

  3. Haz clic en Crear suscripción.

    Se abrirá la página Añadir una suscripción al tema.

  4. Introduce un nombre de suscripción:

    projects/[PROJECT_ID]/subscriptions/[SUBSCRIPTION_NAME]
    

    Donde:

    • [PROJECT_ID] es el ID de tu proyecto Google Cloud .
    • [SUBSCRIPTION_NAME] es el nombre de la suscripción de Pub/Sub.
  5. Deja Tipo de envío configurado como Recepción.

  6. Haz clic en Crear.

gcloud

En una ventana de terminal, ejecuta el siguiente comando:

gcloud pubsub subscriptions create [SUBSCRIPTION_NAME] --topic=[TOPIC_NAME]

Donde:

  • [SUBSCRIPTION_NAME] es el nombre de la suscripción de Pub/Sub.
  • [TOPIC_NAME] es el nombre del tema.

Para obtener más información sobre el comando gcloud pubsub subscriptions, consulta la documentación de subscriptions.

Añadir un tema

Puedes asociar un tema de Pub/Sub a un Google Cloud proyecto o repositorio mediante Google Cloud CLI.

Para asociar un tema a un proyecto completo, introduce el siguiente comando:

gcloud source project-configs update --add-topic=[TOPIC_NAME] --service-account=[SERVICE_ACCOUNT_NAME]

Donde:

  • [TOPIC_NAME] es el nombre del tema de Pub/Sub.
  • [SERVICE_ACCOUNT_NAME] es el nombre de tu cuenta de servicio de Cloud Build.

Para asociar un tema a un repositorio específico, introduce el siguiente comando:

gcloud source repos update [REPOSITORY_NAME] --add-topic=[TOPIC_NAME] --service-account=[SERVICE_ACCOUNT_NAME]

Donde:

  • [REPOSITORY_NAME] es el nombre de tu Google Cloud repositorio.
  • [TOPIC_NAME] es el nombre del tema de Pub/Sub.
  • [SERVICE_ACCOUNT_NAME] es el nombre de tu cuenta de servicio de Cloud Build.

La cuenta de servicio debe estar en el mismo proyecto que el repositorio y debe tener permiso pubsub.topics.publish para publicar un mensaje en el tema especificado. Debes tener permiso iam.serviceAccounts.actAs en la cuenta de servicio. Si no se especifica ninguna cuenta de servicio, se utiliza la cuenta de servicio predeterminada de Compute Engine.

.

Quitar un tema

Puedes eliminar la asociación entre un proyecto o un repositorio y un tema de Pub/Sub mediante Google Cloud CLI.

Para eliminar un tema de todo un proyecto, introduce el siguiente comando:

gcloud source project-configs update --remove-topic=[TOPIC_NAME]

Para quitar un tema de un repositorio específico, introduce el siguiente comando:

gcloud source repos update [REPOSITORY_NAME] --remove-topic=[TOPIC_NAME]

Definir el formato del tema

Las notificaciones de Cloud Source Repositories pueden usar el formato JSON o Protocol Buffers. Para definir el formato de un tema, puedes usar el parámetro --message-format al añadir el tema:

gcloud source project-configs update --add-topic=[TOPIC_NAME] --message-format=[json|protobuf]

También puedes usar el comando set-format:

gcloud source project-configs update --update-topic=[TOPIC_NAME] --message-format=[json|protobuf]

Siguientes pasos