Iscrizione alle notifiche sulla build

Cloud Build pubblica messaggi in un argomento Google Pub/Sub quando lo stato della build cambia, ad esempio quando viene creata, quando passa a uno stato di funzionamento e quando viene completata.

L'argomento Pub/Sub a cui Cloud Build pubblica questi messaggi di aggiornamento della compilazione si chiama cloud-builds. Ogni messaggio contiene una rappresentazione in stringa JSON base64 della risorsa di compilazione nell'attributo message.data. L'ID univoco e lo stato della compilazione sono disponibili nel campo message.attributes.

Puoi utilizzare un modello push o pull per le tue sottoscrizioni Pub/Sub.

Ricevere notifiche sulla build

Per ricevere notifiche sulla build:

  1. Abilita l'API Cloud Build:

    Abilita l'API Cloud Build

    Quando attivi l'API Cloud Build, l'account di servizio Agente servizio Cloud Build viene aggiunto automaticamente al progetto. L'account di servizio ti consente di ricevere notifiche di compilazione tramite Pub/Sub.

    L'account di servizio ha il seguente formato, dove project-number è il numero del progetto:

     service-project-number@gcp-sa-cloudbuild.iam.gserviceaccount.com
    

    Se non vedi l'account di servizio Agente di servizio Cloud Build nella pagina IAM o non riesci a ricevere notifiche tramite Pub/Sub, segui questi passaggi per aggiungere l'account di servizio Agente di servizio Cloud Build al tuo progetto:

    1. Apri la pagina IAM nella console Google Cloud:

      Apri la pagina IAM

    2. Fai clic su Concedi accesso.

    3. Aggiungi il seguente entità, dove project-number è il numero del progetto:

      service-project-number@gcp-sa-cloudbuild.iam.gserviceaccount.com
      
    4. Seleziona Agenti di servizio > Agente di servizio Cloud Build come ruolo.

    5. Fai clic su Salva.

  2. Abilita l'API Pub/Sub:

    Abilita l'API Pub/Sub

  3. Crea l'argomento cloud-builds:

    gcloud pubsub topics create cloud-builds
    

    Per scoprire di più sulla gestione degli argomenti Pub/Sub, consulta Gestire argomenti e iscrizioni.

Push

Le iscrizioni push inviano i messaggi a un endpoint HTTP da te definito. I messaggi vengono recapitati non appena vengono pubblicati nell'argomento.

I messaggi inviati dalle iscrizioni push hanno il seguente aspetto:

{
  "message": {
    "attributes": {
      "buildId": "abcd-efgh...",
      "status": "SUCCESS"
    },
    "data": "SGVsbG8gQ2xvdWQgUHViL1N1YiEgSGVyZSBpcyBteSBtZXNzYWdlIQ==",
    "message_id": "136969346945"
  },
  "subscription": "projects/myproject/subscriptions/mysubscription"
}

Pull

Le iscrizioni pull inviano il messaggio quando vengono sottoposte a polling dall'applicazione a cui sono iscritte. I messaggi vengono recapitati quando viene eseguito il polling dell'abbonamento.

I messaggi inviati dalle iscrizioni pull hanno il seguente aspetto:

{
  "receivedMessages": [
    {
      "ackId": "dQNNHlAbEGEIBERNK0EPKVgUWQYyODM2LwgRHFEZDDsLRk1SK...",
      "message": {
        "attributes": {
          "buildId": "abcd-efgh-...",
          "status": "SUCCESS"
        },
        "data": "SGVsbG8gQ2xvdWQgUHViL1N1YiEgSGVyZSBpcyBteSBtZXNzYWdlIQ==",
        "messageId": "19917247034"
      }
    }
  ]
}

Come faccio ad iscrivermi alle notifiche di aggiornamento della build?

Hai a disposizione diverse opzioni per iscriverti alle notifiche relative agli aggiornamenti delle build. Ad esempio, puoi inviare messaggi a un endpoint o scrivere un'app Python per eseguire il polling del tuo abbonamento.

Per scoprire come configurare le sottoscrizioni Pub/Sub per gli aggiornamenti delle build, consulta la guida per i sottoscrittori Pub/Sub. Puoi anche scoprire di più sulle librerie client Pub/Sub, che semplificano lo sviluppo di applicazioni di abbonamento.

Per scoprire come utilizzare Pub/Sub per inviare aggiornamenti di compilazione a servizi come Slack o via email, consulta Notificatori Cloud Build.