Cloud Build-Notifier

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:

Diagramm für Cloud Build-Benachrichtigungen

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 Standardwert cloud-builds als Themanamen für Builds aus dieser Datei. Wenn Sie also ein cloud-builds-Thema erstellen und options.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:

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