Notificadores de Cloud Build

Los notificadores de Cloud Build son imágenes de Docker que se pueden ejecutar como contenedores en Cloud Run. Cuando una aplicación suscriptora sondea, los notificadores de Cloud Build usan suscripciones push para enviar mensajes a un servicio configurado, como Slack o un servidor SMTP.

En esta página se ofrece una descripción general de los notificadores de Cloud Build.

Notificadores de Cloud Build

Cloud Build envía todas las actualizaciones de eventos de compilación, junto con los metadatos de compilación, a Pub/Sub en el tema cloud-builds o en un tema definido por el usuario. Los notificadores de Cloud Build se pueden configurar para que escuchen ese tema, filtren los mensajes que reciben y envíen mensajes a tu servicio a través de Cloud Run.

Todos los notificadores usan una especificación YAML común para la configuración, que se almacena en Cloud Storage. Si el servicio que has elegido requiere autenticación, sus credenciales se almacenan en Secret Manager. Cloud Run enruta tu mensaje y envía las notificaciones a tu servicio.

En el siguiente diagrama se muestra cómo interactúa Cloud Build con otros productos de Google Cloud , como Pub/Sub y Cloud Run, para enviar notificaciones:

Diagrama de los notificadores de Cloud Build

Temas de Pub/Sub para notificaciones de compilación

De forma predeterminada, Cloud Build envía notificaciones de compilación a un tema de Pub/Sub llamado cloud-builds, si existe. También puedes crear un tema de Pub/Sub personalizado para recibir notificaciones de compilación. En el archivo de configuración de compilación, el campo options.pubsubTopic define el nombre del tema al que Cloud Build envía notificaciones:

  • Si options.pubsubTopic se deja en blanco, Cloud Build usará el valor predeterminado cloud-builds como nombre del tema de las compilaciones de ese archivo. Por lo tanto, si creas un tema cloud-builds y dejas options.pubsubTopic sin definir en todos tus archivos de configuración de compilación, ese tema recibirá todas tus notificaciones de compilación.

  • Si especificas un nombre de tema personalizado en options.pubsubTopic, Cloud Build enviará notificaciones sobre ese archivo de configuración de compilación a ese tema. Los nombres de temas personalizados son útiles cuando no quieres que todas las notificaciones de compilación se publiquen en el mismo tema.

    Cuando usas un nombre de tema personalizado en un archivo de configuración de compilación, también debes asignar el rol roles/pubsub.publisher a cualquier cuenta de servicio que no sea la cuenta de servicio predeterminada de Cloud Build.

Publicar notificaciones de compilación en temas de Pub/Sub de varios proyectos

Para publicar notificaciones de compilación en un tema de Pub/Sub de un proyecto diferente al que se ha ejecutado la compilación, asigna el rol roles/pubsub.publisher a la cuenta de servicio del proyecto de destino.

Por ejemplo, tienes el proyecto A y el proyecto B. Ejecutas una compilación en el proyecto A con la cuenta de servicio A y quieres publicar notificaciones de compilación en un tema de Pub/Sub del proyecto B. Para ello, puedes conceder a la cuenta de servicio A el rol roles/pubsub.publisher en el proyecto B ejecutando el siguiente comando:

  gcloud projects add-iam-policy-binding ProjectB --member 'serviceAccount:ServiceAccountA' --role 'roles/pubsub.publisher'

Después, podrías usar una configuración de compilación como la siguiente, que te permite ejecutar una compilación en el proyecto A y publicar notificaciones de compilación en el proyecto B:

  steps:
    - name: ubuntu
      args:
        - pwd
  serviceAccount: projects/ProjectA/serviceAccounts/ServiceAccountA
  options:
    pubsubTopic: projects/ProjectB/topics/CustomTopic
    logging: desired-logging-option

Notificadores compatibles proporcionados por Cloud Build

Cloud Build proporciona y mantiene imágenes de notificador desplegables en el repositorio cloud-build-notifiers. En la siguiente tabla se enumeran los notificadores disponibles:

Notificador Descripción
bigquery Escribe datos de compilación en una tabla de BigQuery.
githubissues Usa un webhook de GitHub para crear incidencias en un repositorio de GitHub.
googlechat Usa un webhook de Google Chat para publicar mensajes en un espacio de Google Chat
http Envía una carga útil JSON a otro endpoint HTTP.
slack Usa un webhook de Slack para publicar mensajes en un canal de Slack
smtp Envía correos a través de un servidor SMTP.

Para obtener más información sobre cómo configurar cada notificador, consulta la página correspondiente a cada servicio:

Automatizar la configuración de las notificaciones

Cloud Build proporciona una secuencia de comandos de configuración que puedes usar para automatizar la configuración de notificaciones de los notificadores compatibles con Cloud Build.

Para saber cómo configurar las notificaciones de los notificadores compatibles con Cloud Build, consulta Automatizar la configuración de las notificaciones.

Crear tu propio notificador

Además de los notificadores que mantiene Cloud Build, como Slack o SMTP, puedes usar la biblioteca proporcionada en el repositorio cloud-build-notifiers para crear tu propio notificador.

Para saber cómo crear tu propio notificador, consulta Crear tu propio notificador.

Siguientes pasos