Cloud Build pubblica messaggi su un argomento Google Pub/Sub quando lo stato della build cambia, ad esempio quando viene creata, quando passa a uno stato di lavoro e quando viene completata. Ogni
messaggio contiene una rappresentazione
di stringa JSON in base64 della tua
risorsa Build nell'attributo
message.data. L'ID univoco della build e il relativo stato sono disponibili nel campo message.attributes.
Per impostazione predefinita, i messaggi vengono pubblicati nell'argomento cloud-builds. Puoi anche specificare un nome di argomento personalizzato nel campo options.pubsubTopic del file di configurazione della build. Per ulteriori informazioni sulla configurazione dei nomi degli argomenti nel file di configurazione della build, consulta Argomenti Pub/Sub per le notifiche di build.
Puoi utilizzare un modello push o pull per gli abbonamenti Pub/Sub.
Ricevere notifiche relative alle build
Per ricevere le notifiche sulla build:
Abilita l'API Cloud Build:
Quando abiliti l'API Cloud Build, l'account di servizio Agente di servizio Cloud Build viene aggiunto automaticamente al tuo progetto. Il account di servizio ti consente di ricevere notifiche di build da Pub/Sub.
Il account di servizio ha il seguente formato, dove project-number è il numero del tuo progetto:
service-project-number@gcp-sa-cloudbuild.iam.gserviceaccount.comSe non vedi l'account di servizio Agente di servizio Cloud Build nella pagina IAM o non riesci a ricevere notifiche da Pub/Sub, segui questi passaggi per aggiungere l'account di servizio Agente di servizio Cloud Build al tuo progetto:
Apri la pagina IAM nella console Google Cloud :
Fai clic su Concedi l'accesso.
Aggiungi la seguente entità, dove project-number è il numero del tuo progetto:
service-project-number@gcp-sa-cloudbuild.iam.gserviceaccount.comSeleziona Service Agents > Cloud Build Service Agent come ruolo.
Fai clic su Salva.
Abilita l'API Pub/Sub:
Crea l'argomento
cloud-builds:gcloud pubsub topics create cloud-buildsPuoi anche definire un nome di argomento personalizzato nel file di configurazione della build in modo che i messaggi vengano inviati all'argomento personalizzato. In questo caso, devi creare un argomento con lo stesso nome dell'argomento personalizzato:
gcloud pubsub topics create topic-namePer ulteriori informazioni, consulta la sezione Argomenti Pub/Sub per le notifiche di build.
Per saperne di più sulla gestione degli argomenti Pub/Sub, consulta Gestione di argomenti e iscrizioni.
Sottoscrizioni push
Le sottoscrizioni push inviano messaggi a un endpoint HTTP che definisci. I messaggi vengono recapitati non appena vengono pubblicati nell'argomento.
I messaggi inviati dalle iscrizioni push hanno questo aspetto:
{
"message": {
"attributes": {
"buildId": "abcd-efgh...",
"status": "SUCCESS"
},
"data": "SGVsbG8gQ2xvdWQgUHViL1N1YiEgSGVyZSBpcyBteSBtZXNzYWdlIQ==",
"messageId": "136969346945"
},
"subscription": "projects/myproject/subscriptions/mysubscription"
}
Sottoscrizioni pull
Pull subscriptions (Esegui il pull delle sottoscrizioni) invia il messaggio quando viene eseguito il polling da parte dell' applicazione a cui è stato eseguito l'abbonamento. I messaggi vengono inviati quando viene eseguito il polling dell'abbonamento.
I messaggi inviati dalle sottoscrizioni pull hanno questo aspetto:
{
"receivedMessages": [
{
"ackId": "dQNNHlAbEGEIBERNK0EPKVgUWQYyODM2LwgRHFEZDDsLRk1SK...",
"message": {
"attributes": {
"buildId": "abcd-efgh-...",
"status": "SUCCESS"
},
"data": "SGVsbG8gQ2xvdWQgUHViL1N1YiEgSGVyZSBpcyBteSBtZXNzYWdlIQ==",
"messageId": "19917247034"
}
}
]
}
Iscrizione alle notifiche di aggiornamento della build
Hai diverse opzioni per abbonarti alle notifiche di aggiornamento delle build. Ad esempio, puoi trasferire i messaggi a un endpoint o scrivere un'app Python per il polling dell'abbonamento.
Per scoprire come configurare le sottoscrizioni Pub/Sub per gli aggiornamenti delle build, leggi la Guida per i sottoscrittori Pub/Sub. Puoi anche scoprire di più sulle librerie client Pub/Sub, che semplificano lo sviluppo di applicazioni di sottoscrizione.
Per scoprire come utilizzare Pub/Sub per inviare aggiornamenti delle build a email o a servizi come Slack, consulta Cloud Build Notifier.