Build-Benachrichtigungen abonnieren

Wenn sich der Build-Status ändert, veröffentlicht Cloud Build Nachrichten in einem Google Pub/Sub-Thema. Das ist beispielsweise der Fall, wenn der Build erstellt wird, in einen funktionsfähigen Zustand wechselt oder abgeschlossen wird.

Cloud Build veröffentlicht diese Nachrichten zu Build-Updates im Pub/Sub-Thema cloud-builds. Jede Nachricht enthält im Attribut message.data eine base64-JSON-String-Darstellung Ihrer Build-Ressource. Die eindeutige ID des Builds und den Status des Builds finden Sie im Feld message.attributes.

Sie können für Ihre Pub/Sub-Abos ein Push- oder Pull-Modell verwenden.

Build-Benachrichtigungen erhalten

So erhalten Sie Build-Benachrichtigungen:

  1. Aktivieren Sie die Cloud Build API

    Cloud Build API aufrufen

    Wenn Sie die Cloud Build API aktivieren, wird das Dienstkonto Cloud Build Service Agent automatisch Ihrem Projekt hinzugefügt. Mit dem Dienstkonto können Sie Build-Benachrichtigungen über Pub/Sub erhalten.

    Das Dienstkonto hat das folgende Format, wobei project-number Ihre Projektnummer ist:

     service-project-number@gcp-sa-cloudbuild.iam.gserviceaccount.com
    

    Wenn Sie das Dienstkonto des Cloud Build Dienst-Agent nicht auf der IAM-Seite sehen oder keine Benachrichtigungen über Pub/Sub erhalten können, befolgen Sie diese Schritte, um das Dienstkonto des Cloud Build Dienst-Agent zu Ihrem Projekt hinzuzufügen:

    1. Öffnen Sie in der Google Cloud Console die Seite IAM:

      Seite "IAM" öffnen

    2. Klicken Sie auf Zugriff erlauben.

    3. Fügen Sie das folgende Hauptkonto hinzu, wobei project-number Ihre Projektnummer ist:

      service-project-number@gcp-sa-cloudbuild.iam.gserviceaccount.com
      
    4. Wählen Sie Service Management > Cloud Build-Dienst-Agent als Rolle aus.

    5. Klicken Sie auf Speichern.

  2. Pub/Sub API aktivieren:

    Pub/Sub API aktivieren

  3. Erstellen Sie das Thema cloud-builds:

    gcloud pubsub topics create cloud-builds
    

    Weitere Informationen zum Verwalten von Pub/Sub-Themen finden Sie unter Themen und Abos verwalten.

Push

Push-Abonnements liefern Nachrichten an einen von Ihnen definierten HTTP-Endpunkt. Die Übertragung der Nachrichten erfolgt, sobald sie im Thema veröffentlicht wurden.

Von Push-Abonnements gesendete Nachrichten sehen so aus:

{
  "message": {
    "attributes": {
      "buildId": "abcd-efgh...",
      "status": "SUCCESS"
    },
    "data": "SGVsbG8gQ2xvdWQgUHViL1N1YiEgSGVyZSBpcyBteSBtZXNzYWdlIQ==",
    "message_id": "136969346945"
  },
  "subscription": "projects/myproject/subscriptions/mysubscription"
}

Pull

Pull-Abonnements liefern Nachrichten, wenn sie von der abonnierenden Anwendung abgerufen werden. Die Nachrichten werden beim Abrufen des Abonnements gesendet.

Von Pull-Abonnements gesendete Nachrichten sehen so aus:

{
  "receivedMessages": [
    {
      "ackId": "dQNNHlAbEGEIBERNK0EPKVgUWQYyODM2LwgRHFEZDDsLRk1SK...",
      "message": {
        "attributes": {
          "buildId": "abcd-efgh-...",
          "status": "SUCCESS"
        },
        "data": "SGVsbG8gQ2xvdWQgUHViL1N1YiEgSGVyZSBpcyBteSBtZXNzYWdlIQ==",
        "messageId": "19917247034"
      }
    }
  ]
}

Wie kann ich Build-Update-Benachrichtigungen abonnieren?

Sie haben verschiedene Möglichkeiten, Build-Update-Benachrichtigungen zu abonnieren. Sie können beispielsweise Nachrichten per Push an einen Endpunkt übertragen oder eine Python-Anwendung zum Abfragen des Abos schreiben.

Wie Sie Pub/Sub-Abos für Build-Updates einrichten, erfahren Sie im Cloud Pub/Sub-Abonnentenleitfaden. Sie können darüber hinaus auch etwas über die Nutzung von Cloud Pub/Sub-Clientbibliotheken erfahren, die das Entwickeln von Abonnentenanwendungen erleichtern.

Informationen zum Senden von Build-Updates mit Pub/Sub an Dienste wie Slack oder per E-Mail finden Sie unter Cloud Build-Notifier.