Cómo suscribirse a las notificaciones de compilación

Cloud Build publica mensajes en un tema de Google Pub/Sub cuando cambia el estado de tu compilación, por ejemplo, cuando se crea, cuando pasa a un estado de trabajo y cuando se completa. Cada mensaje contiene una representación de cadena JSON en base64 de tu recurso Build en el atributo message.data. El ID único de la compilación y su estado 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 cómo configurar los nombres de los temas en tu archivo de configuración de compilación, consulta Temas de Pub/Sub para las notificaciones de compilación.

Puedes usar un modelo de envío o extracción para las suscripciones de Pub/Sub.

Recibe notificaciones de compilación

Sigue estos pasos para recibir notificaciones de compilación:

  1. Habilita la API de Cloud Build

    Habilita la API de Cloud Build

    En la mayoría de los casos, cuando habilitas la API de Cloud Build, la cuenta de servicio del agente de servicio de Cloud Build se agrega automáticamente a tu proyecto. 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.
    

    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:

    1. Abre la página de IAM en la consola de Google Cloud :

      Abrir la página IAM

    2. Haz clic en Otorgar acceso.

    3. Agrega la siguiente principal, en el que project-number es tu número de proyecto:

      service-project-number@gcp-sa-cloudbuild.
      
    4. Selecciona Agente de servicio > Agente de servicio de Cloud Build como tu función.

    5. Haz clic en Guardar.

  2. Habilita la API de Pub/Sub:

    Habilitar la API de Pub/Sub

  3. 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 a ese tema. En este caso, crearías 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 las notificaciones de compilación.

    Para obtener más información sobre cómo administrar los 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==",
    "messageId": "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"
      }
    }
  ]
}

Suscríbete para recibir notificaciones de actualización de compilaciones

Tienes varias opciones para suscribirte a las notificaciones de actualización de compilaciones. Por ejemplo, puedes enviar mensajes a un extremo o escribir una app de Python para que sondee tu suscripción.

Para obtener información sobre cómo configurar las suscripciones a Pub/Sub para las actualizaciones de compilación, consulta la Guía para 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.

Para aprender a usar Pub/Sub para enviar actualizaciones de compilación a un correo electrónico o a servicios como Slack, consulta Notificadores de Cloud Build.