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:
Aktivieren Sie die Cloud Build API
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:
Öffnen Sie in der Google Cloud Console die Seite IAM:
Klicken Sie auf Zugriff erlauben.
Fügen Sie das folgende Hauptkonto hinzu, wobei project-number Ihre Projektnummer ist:
service-project-number@gcp-sa-cloudbuild.iam.gserviceaccount.com
Wählen Sie Service Management > Cloud Build-Dienst-Agent als Rolle aus.
Klicken Sie auf Speichern.
Pub/Sub API aktivieren:
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.