Cloud Build-Notifier sind Docker-Images, die als Container in Cloud Run ausgeführt werden können. Beim Abfragen durch eine Abonnentenanwendung verwenden Cloud Build-Notifier Push-Abos, um Nachrichten an einen konfigurierten Dienst wie Slack oder einen SMTP-Server zu senden.
Auf dieser Seite finden Sie eine Übersicht über Cloud Build-Benachrichtigungen.
Cloud Build-Notifier
Cloud Build sendet alle Build-Ereignisaktualisierungen zusammen mit Build-Metadaten an Pub/Sub, entweder an das Thema cloud-builds
oder an ein benutzerdefiniertes Thema. Cloud Build-Notifier können so konfiguriert werden, dass sie dieses Thema überwachen, die empfangenen Nachrichten filtern und Nachrichten über Cloud Run an Ihren Dienst senden.
Alle Benachrichtigungen verwenden eine gemeinsame YAML-Spezifikation für die Konfiguration, die in Cloud Storage gespeichert ist. Wenn für den ausgewählten Dienst eine Authentifizierung erforderlich ist, werden die Anmeldedaten in Secret Manager gespeichert. Cloud Run leitet Ihre Nachricht weiter und sendet Ihre Benachrichtigungen an Ihren Dienst.
Das folgende Diagramm zeigt, wie Cloud Build mit anderen Google Cloud Produkten wie Pub/Sub und Cloud Run interagiert, um Benachrichtigungen zu senden:
Pub/Sub-Themen für Build-Benachrichtigungen
Standardmäßig sendet Cloud Build Build-Benachrichtigungen an ein Pub/Sub-Thema mit dem Namen cloud-builds
, sofern eines vorhanden ist. Sie können auch ein benutzerdefiniertes Pub/Sub-Thema erstellen, um Buildbenachrichtigungen zu erhalten. In der Build-Konfigurationsdatei definiert das Feld options.pubsubTopic
den Namen des Topics, an das Cloud Build Benachrichtigungen sendet:
Wenn
options.pubsubTopic
leer bleibt, verwendet Cloud Build den Standardwertcloud-builds
als Themanamen für Builds aus dieser Datei. Wenn Sie also eincloud-builds
-Thema erstellen undoptions.pubsubTopic
in allen Build-Konfigurationsdateien nicht definieren, werden an dieses Thema alle Build-Benachrichtigungen gesendet.Wenn Sie in
options.pubsubTopic
einen benutzerdefinierten Themennamen angeben, sendet Cloud Build Benachrichtigungen für diese Build-Konfigurationsdatei an dieses Thema. Benutzerdefinierte Themennamen sind nützlich, wenn nicht alle Build-Benachrichtigungen für dasselbe Thema veröffentlicht werden sollen.Wenn Sie in einer Build-Konfigurationsdatei einen benutzerdefinierten Themennamen verwenden, müssen Sie der Rolle
roles/pubsub.publisher
auch ein anderes Dienstkonto als das Standard-Cloud Build-Dienstkonto zuweisen.
Build-Benachrichtigungen in Pub/Sub-Themen für alle Projekte veröffentlichen
Wenn Sie Buildbenachrichtigungen in einem Pub/Sub-Thema in einem anderen Projekt veröffentlichen möchten, als in dem der Build ausgeführt wurde, weisen Sie dem Dienstkonto im Zielprojekt die Rolle roles/pubsub.publisher
zu.
Angenommen, Sie haben die Projekte A und B. Sie führen einen Build in Projekt A mit Dienstkonto A aus und möchten Buildbenachrichtigungen in einem Pub/Sub-Thema in Projekt B veröffentlichen. Dazu können Sie dem Dienstkonto A die Rolle roles/pubsub.publisher
in Projekt B mit dem folgenden Befehl zuweisen:
gcloud projects add-iam-policy-binding ProjectB --member 'serviceAccount:ServiceAccountA' --role 'roles/pubsub.publisher'
Sie können dann eine Build-Konfiguration wie die folgende verwenden, mit der Sie einen Build in Projekt A ausführen und Build-Benachrichtigungen in Projekt B veröffentlichen können:
steps:
- name: ubuntu
args:
- pwd
serviceAccount: projects/ProjectA/serviceAccounts/ServiceAccountA
options:
pubsubTopic: projects/ProjectB/topics/CustomTopic
logging: desired-logging-option
Von Cloud Build unterstützte Benachrichtigungen
Cloud Build hält bereitstellbare Notifier-Images im cloud-build-notifiers
-Repository vor. In der folgenden Tabelle sind die verfügbaren Notifier aufgeführt:
Notifier | Beschreibung |
---|---|
bigquery |
schreibt Build-Daten in eine BigQuery-Tabelle |
githubissues |
verwendet einen GitHub-Webhook, um Probleme in einem GitHub-Repository zu erstellen |
googlechat |
verwendet einen Google Chat-Webhook, um Nachrichten in einem Google Chat-Bereich zu posten |
http |
sendet eine JSON-Nutzlast an einen anderen HTTP-Endpunkt |
slack |
verwendet einen Slack-Webhook, um Nachrichten auf einem Slack-Kanal zu posten |
smtp |
sendet E-Mails über einen SMTP-Server |
Weitere Informationen zum Konfigurieren der einzelnen Benachrichtigungsdienste finden Sie auf den entsprechenden Seiten für die einzelnen Dienste:
- BigQuery-Benachrichtigungen konfigurieren
- Benachrichtigungen zu GitHub-Problemen konfigurieren
- Google Chat-Benachrichtigungen konfigurieren
- HTTP-Benachrichtigungen konfigurieren
- Slack-Benachrichtigungen konfigurieren
- SMTP-Benachrichtigungen konfigurieren
Benachrichtigungskonfiguration automatisieren
Cloud Build bietet ein Einrichtungsskript, mit dem Sie die Benachrichtigungskonfiguration für von Cloud Build unterstützte Benachrichtigungsmechanismen automatisieren können.
Informationen zum Konfigurieren von Benachrichtigungen für von Cloud Build unterstützte Benachrichtigungsmechanismen finden Sie unter Konfiguration für Benachrichtigungen automatisieren.
Eigenen Notifier erstellen
Neben den von Cloud Build verwalteten Benachrichtigungen wie Slack oder SMTP können Sie auch die bereitgestellte Bibliothek im cloud-build-notifiers
-Repository verwenden, um einen eigenen Notifier zu erstellen.
Informationen zum Erstellen eines eigenen Notifiers finden Sie unter Eigenen Notifier erstellen.
Nächste Schritte
- Weitere Informationen zum Konfigurieren von BigQuery-, GitHub-Issue-, Google Chat-, HTTP-, Slack- oder SMTP-Notifiern
- Weitere Informationen zum Automatisieren der Konfiguration für Benachrichtigungen
- Weitere Informationen zum Erstellen eines eigenen Notifiers