I notificatori Cloud Build sono immagini Docker che possono essere eseguite come container su Cloud Run. Quando vengono sottoposti a polling da un'applicazione di abbonamento, i notificatori di Cloud Build utilizzano abbonamenti push per inviare messaggi a un servizio configurato, ad esempio Slack o un server SMTP.
Questa pagina fornisce una panoramica degli avvisatori di Cloud Build.
Notificatori di Cloud Build
Cloud Build invia tutti gli aggiornamenti degli eventi di compilazione, insieme ai metadati di compilazione,
a Pub/Sub nell'argomento
cloud-builds
o in un argomento definito dall'utente. I notifier di Cloud Build possono essere configurati per ascoltare l'argomento, filtrare i messaggi ricevuti e inviare messaggi al tuo servizio tramite Cloud Run.
Tutti i notificatori utilizzano una specifica YAML comune per la configurazione, archiviata in Cloud Storage. Se il servizio scelto richiede l'autenticazione, le relative credenziali vengono archiviate in Secret Manager. Cloud Run instrada il messaggio e invia le notifiche al tuo servizio.
Il seguente diagramma mostra come Cloud Build interagisce con altri Google Cloud prodotti, come Pub/Sub e Cloud Run, per inviare notifiche:
Argomenti Pub/Sub per le notifiche di build
Per impostazione predefinita, Cloud Build invia notifiche di build a un argomento Pub/Sub denominato cloud-builds
, se esistente. Puoi anche
creare un argomento Pub/Sub personalizzato per
ricevere notifiche di compilazione. Nel file di configurazione della build, il campo options.pubsubTopic
definisce il nome dell'argomento a cui Cloud Build invia notifiche:
Se
options.pubsubTopic
viene lasciato vuoto, Cloud Build utilizza il valore predefinitocloud-builds
come nome dell'argomento per le build da quel file. Di conseguenza, se crei un argomentocloud-builds
e lascioptions.pubsubTopic
non definito in tutti i file di configurazione di compilazione, questo argomento riceve tutte le notifiche di compilazione.Se specifichi un nome di argomento personalizzato in
options.pubsubTopic
, Cloud Build invia notifiche per il file di configurazione della build a quell'argomento. I nomi degli argomenti personalizzati sono utili se non vuoi che tutte le notifiche di compilazione vengano pubblicate nello stesso argomento.Quando utilizzi un nome di argomento personalizzato in un file di configurazione di compilazione, devi anche assegnare il ruolo
roles/pubsub.publisher
a qualsiasi account di servizio diverso dall'account di servizio Cloud Build predefinito.
Pubblicare notifiche di compilazione in argomenti Pub/Sub in più progetti
Per pubblicare notifiche di compilazione in un argomento Pub/Sub in un progetto diverso da quello in cui è stata eseguita la compilazione, fornisci il ruolo roles/pubsub.publisher
all'account di servizio nel progetto di destinazione.
Ad esempio, hai il progetto A e il progetto B. Esegui una compilazione nel progetto A utilizzando l'account di servizio A e vuoi pubblicare notifiche di compilazione in un argomento Pub/Sub nel progetto B. Per farlo,
puoi concedere all'account di servizio A il ruolo roles/pubsub.publisher
nel
progetto B eseguendo il seguente comando:
gcloud projects add-iam-policy-binding ProjectB --member 'serviceAccount:ServiceAccountA' --role 'roles/pubsub.publisher'
Potresti quindi utilizzare una configurazione di compilazione come la seguente, che ti consente di eseguire una compilazione nel progetto A e pubblicare notifiche di compilazione nel progetto B:
steps:
- name: ubuntu
args:
- pwd
serviceAccount: projects/ProjectA/serviceAccounts/ServiceAccountA
options:
pubsubTopic: projects/ProjectB/topics/CustomTopic
logging: desired-logging-option
Notificatori supportati forniti da Cloud Build
Cloud Build fornisce e gestisce le immagini di notifica di cui è possibile eseguire il deployment nel
repository cloud-build-notifiers
. La tabella seguente elenca i notifier disponibili:
Notifier | Descrizione |
---|---|
bigquery |
Scrive i dati di compilazione in una tabella BigQuery |
githubissues |
utilizza un webhook GitHub per creare problemi in un repository GitHub |
googlechat |
utilizza un webhook di Google Chat per pubblicare messaggi in uno spazio di Google Chat |
http |
invia un payload JSON a un altro endpoint HTTP |
slack |
utilizza un webhook Slack per pubblicare messaggi in un canale Slack |
smtp |
invia email tramite un server SMTP |
Per scoprire di più su come configurare ogni notificatore, consulta la pagina corrispondente per ciascun servizio:
- Configurare le notifiche di BigQuery
- Configurare le notifiche relative ai problemi di GitHub
- Configurare le notifiche di Google Chat
- Configurare le notifiche HTTP
- Configurare le notifiche di Slack
- Configurare le notifiche SMTP
Automatizzare la configurazione delle notifiche
Cloud Build fornisce uno script di configurazione che puoi utilizzare per automatizzare la configurazione delle notifiche per i notificatori supportati da Cloud Build.
Per scoprire come configurare le notifiche per i notificatori supportati da Cloud Build, consulta Automatizzare la configurazione per le notifiche.
Creare un notifier personalizzato
Oltre ai notificatori gestiti da Cloud Build, come Slack o SMTP, puoi utilizzare la libreria fornita nel repository cloud-build-notifiers
per creare il tuo notificatore.
Per scoprire come creare un notifier personalizzato, consulta la sezione Creare un notifier personalizzato.
Passaggi successivi
- Scopri come configurare i notificatori BigQuery, Issue GitHub, Google Chat, HTTP, Slack o SMTP.
- Scopri come automatizzare la configurazione per le notifiche.
- Scopri come creare il tuo notifier.