Iscrizione alle notifiche sulla build

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

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

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

Ricezione di notifiche di build

Per ricevere notifiche relative alle build:

  1. Abilita l'API Cloud Build:

    Abilita l'API Cloud Build

    Quando abiliti l'API Cloud Build, l'account di servizio dell'agente di servizio Cloud Build viene aggiunto automaticamente al progetto. L'account di servizio ti consente di ricevere notifiche sulle build tramite Pub/Sub.

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

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

    Se non visualizzi l'account di servizio dell'agente di servizio Cloud Build nella tua pagina IAM o non riesci a ricevere notifiche tramite Pub/Sub, segui questi passaggi per aggiungere l'account di servizio dell'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 la seguente entità, dove project-number è il numero del tuo 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 la sezione sulla gestione degli argomenti e delle sottoscrizioni.

Push

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

I messaggi inviati dalle sottoscrizioni push hanno il seguente aspetto:

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

Pull

Le sottoscrizioni pull recapitano il messaggio quando viene eseguito il polling dall'applicazione sottoscritta. I messaggi vengono recapitati quando viene eseguito il polling dell'abbonamento.

I messaggi inviati dalle sottoscrizioni pull hanno il seguente aspetto:

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

Come faccio a iscrivermi per ricevere le notifiche di aggiornamento della build?

Hai a disposizione diverse opzioni per iscriverti alle notifiche relative agli aggiornamenti delle build. Ad esempio, puoi eseguire il push dei messaggi a un endpoint o scrivere un'app Python per il polling della sottoscrizione.

Per informazioni su come impostare le sottoscrizioni Pub/Sub per gli aggiornamenti della build, leggi la Guida per gli abbonati a Pub/Sub. Puoi anche scoprire di più sulle librerie client di Pub/Sub, che semplificano lo sviluppo di applicazioni per gli abbonati.

Per scoprire come utilizzare Pub/Sub per inviare aggiornamenti delle build a servizi come Slack o via email, consulta i notifiche di Cloud Build.