Notificatori di Cloud Build

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:

Diagramma per i notificatori di Cloud Build

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 predefinito cloud-builds come nome dell'argomento per le build da quel file. Di conseguenza, se crei un argomento cloud-builds e lasci options.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:

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