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:
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 predeterminadocloud-builds
como nombre del tema de las compilaciones de ese archivo. Por lo tanto, si creas un temacloud-builds
y dejasoptions.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:
- Configurar notificaciones de BigQuery
- Configurar las notificaciones de problemas de GitHub
- Configurar las notificaciones de Google Chat
- Configurar notificaciones HTTP
- Configurar las notificaciones de Slack
- Configurar notificaciones SMTP
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
- Consulta cómo configurar las notificaciones de BigQuery, GitHub Issue, Google Chat, HTTP, Slack o SMTP.
- Consulta cómo automatizar la configuración de las notificaciones.
- Consulta cómo crear tu propio notificador.