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:
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:
Apri la pagina IAM nella console Google Cloud:
Fai clic su Concedi accesso.
Aggiungi la seguente entità, dove project-number è il numero del tuo 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 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.