Cloud Build pubblica i messaggi su Google Pub/Sub quando lo stato della build cambia, ad esempio quando la build viene creata, quando viene eseguita la transizione allo stato di lavoro viene completata.
L'argomento Pub/Sub in cui Cloud Build pubblica questi aggiornamenti della build
messaggi 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 build sono indicati nella sezione
message.attributes
.
Puoi utilizzare un modello push o pull per le tue sottoscrizioni Pub/Sub.
Ricezione di notifiche sulle build
Per ricevere notifiche sulle build:
Abilita l'API Cloud Build:
Quando abiliti l'API Cloud Build, il servizio Cloud Build L'account di servizio dell'agente viene aggiunto automaticamente al progetto. La che consente di ricevere notifiche sulle build tramite in 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 dell'agente di servizio Cloud Build sul tuo pagina IAM o non essere in grado di ricevere notifiche tramite Pub/Sub, Per aggiungere l'account di servizio dell'agente di servizio Cloud Build alla tua organizzazione, segui questi passaggi progetto:
Apri la pagina IAM nella console Google Cloud:
Fai clic su Concedi accesso.
Aggiungi la seguente entità, dove project-number è il numero di 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 sottoscrizioni push recapitano i messaggi a un endpoint HTTP che definisci. 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 sottoscrizioni pull inviano un messaggio di recapito quando vengono sottoposte a polling da parte del applicazione sottoscritta. 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?
Sono disponibili diverse opzioni per l'iscrizione alle notifiche relative agli aggiornamenti delle build. Ad esempio, puoi messaggi push a un endpoint, o scrivi un'app Python per eseguire il polling della tua sottoscrizione.
Per scoprire come configurare le sottoscrizioni Pub/Sub per gli aggiornamenti delle build, consulta la Guida per gli abbonati a Pub/Sub. Inoltre, puoi scoprire sulle librerie client Pub/Sub, che semplificano lo sviluppo di applicazioni per gli abbonati.
Per scoprire come utilizzare Pub/Sub per inviare aggiornamenti di compilazione a servizi come Slack o via email, consulta Notificatori Cloud Build.