Cloud Build pubblica messaggi su un argomento Google Pub/Sub quando cambia lo stato della build, ad esempio quando viene creata, quando passa a uno stato di funzionamento e quando viene completata. Ogni messaggio contiene una rappresentazione in stringa JSON base64 della risorsa di compilazione nell'attributo message.data
. L'ID univoco della compilazione 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 di compilazione. 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 le tue sottoscrizioni Pub/Sub.
Ricevere notifiche di compilazione
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 da 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 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 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
Puoi anche definire un nome di argomento personalizzato nel file di configurazione della compilazione in modo che i messaggi vengano inviati all'argomento personalizzato. In questo caso, dovresti creare un argomento con lo stesso nome dell'argomento personalizzato:
gcloud pubsub topics create topic-name
Per ulteriori informazioni, consulta Argomenti Pub/Sub per le notifiche di build.
Per scoprire di più sulla gestione degli argomenti Pub/Sub, consulta Gestire argomenti e iscrizioni.
Sottoscrizioni 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"
}
Sottoscrizioni pull
Le iscrizioni pull inviano il messaggio quando vengono sottoposte a polling dall'applicazione a cui hai effettuato l'iscrizione. 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"
}
}
]
}
Iscriverti alle notifiche di aggiornamento della build
Hai a disposizione diverse opzioni per iscriverti alle notifiche di aggiornamento della 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 via email o a servizi come Slack, consulta Avvisi di Cloud Build.