Cloud Build publica mensajes en un tema de Google Pub/Sub cuando cambia el estado de tu compilación, como cuando esta se crea, cuando pasa a un estado de trabajo y cuando finaliza. Cada mensaje contiene una representación de cadena JSON en base64 de tu recurso de compilación en el atributo message.data
. El ID único y el estado de la compilación se pueden encontrar en el campo message.attributes
.
De forma predeterminada, los mensajes se publican en el tema cloud-builds
. También puedes especificar un nombre de tema personalizado en el campo options.pubsubTopic
de tu archivo de configuración de compilación. Para obtener más información sobre la configuración de nombres de temas en tu archivo de configuración de compilación, consulta Temas de Pub/Sub para notificaciones de compilación.
Puedes usar un modelo de envío o extracción para las suscripciones de Pub/Sub.
Cómo recibir notificaciones de compilación
Sigue estos pasos para recibir notificaciones de compilación:
Habilita la API de Cloud Build
Habilita la API de Cloud Build
Cuando habilitas la API de Cloud Build, la cuenta de servicio del Agente de servicio de Cloud Build se agrega a tu proyecto de forma automática. La cuenta de servicio te permite recibir notificaciones de compilación de Pub/Sub.
La cuenta de servicio tiene el siguiente formato, en el que project-number es tu número de proyecto:
service-project-number@gcp-sa-cloudbuild.iam.gserviceaccount.com
Si no ves la cuenta de servicio del Agente de servicio de Cloud Build en tu página de IAM o no puedes recibir notificaciones de Pub/Sub, sigue estos pasos para agregar la cuenta de servicio del Agente de servicio de Cloud Build a tu proyecto:
Abre la página de IAM en la consola de Google Cloud.
Haz clic en Otorgar acceso.
Agrega la siguiente principal, en el que project-number es tu número de proyecto:
service-project-number@gcp-sa-cloudbuild.iam.gserviceaccount.com
Selecciona Agente de servicio > Agente de servicio de Cloud Build como tu función.
Haz clic en Guardar.
Habilita la API de Pub/Sub:
Crea el tema
cloud-builds
:gcloud pubsub topics create cloud-builds
También puedes definir un nombre de tema personalizado en tu archivo de configuración de compilación para que los mensajes se envíen al tema personalizado. En este caso, deberías crear un tema con el mismo nombre de tema personalizado:
gcloud pubsub topics create topic-name
Para obtener más información, consulta Temas de Pub/Sub para notificaciones de compilación.
Para obtener más información sobre cómo administrar temas de Pub/Sub, consulta Administra temas y suscripciones.
Suscripciones de inserción
Las suscripciones de envío entregan mensajes a un extremo HTTP que definas. Los mensajes se entregan apenas se publican en el tema.
Los mensajes enviados desde suscripciones de envío se ven de la siguiente manera:
{
"message": {
"attributes": {
"buildId": "abcd-efgh...",
"status": "SUCCESS"
},
"data": "SGVsbG8gQ2xvdWQgUHViL1N1YiEgSGVyZSBpcyBteSBtZXNzYWdlIQ==",
"message_id": "136969346945"
},
"subscription": "projects/myproject/subscriptions/mysubscription"
}
Suscripciones de extracción
Las suscripciones de extracción envían un mensaje cuando la aplicación suscrita realiza una consulta a estas. Los mensajes se entregan cuando se consulta a la suscripción.
Los mensajes enviados desde suscripciones de extracción se ven de la siguiente manera:
{
"receivedMessages": [
{
"ackId": "dQNNHlAbEGEIBERNK0EPKVgUWQYyODM2LwgRHFEZDDsLRk1SK...",
"message": {
"attributes": {
"buildId": "abcd-efgh-...",
"status": "SUCCESS"
},
"data": "SGVsbG8gQ2xvdWQgUHViL1N1YiEgSGVyZSBpcyBteSBtZXNzYWdlIQ==",
"messageId": "19917247034"
}
}
]
}
Cómo suscribirse a las notificaciones de actualización de compilación
Tienes varias opciones para suscribirte y compilar notificaciones de actualización. Por ejemplo, puedes enviar mensajes a un extremo o escribir una app de Python para que sondee tu suscripción.
Si quieres aprender a configurar suscripciones de Pub/Sub para actualizaciones de compilación, consulta la Guía de suscriptores de Pub/Sub. También puedes obtener más información sobre las Bibliotecas cliente de Pub/Sub, que facilitan el desarrollo de aplicaciones para suscriptores.
Si quieres aprender a usar Pub/Sub para enviar actualizaciones de compilación a correo electrónico o a servicios como Slack, consulta Notificadores de Cloud Build.