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:
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:
Apri la pagina IAM nella console Google Cloud:
Fai clic su Concedi accesso.
Aggiungi il seguente entità, dove project-number è il numero del progetto:
service-project-number@gcp-sa-cloudbuild.iam.gserviceaccount.com
Seleziona Agenti di servizio > Agente di servizio Cloud Build come ruolo.
Fai clic su Salva.
Abilita l'API Pub/Sub:
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.