Auf dieser Seite wird beschrieben, wie Sie Google Cloud Deploy-Dienstbenachrichtigungen verwenden und diese abonnieren.
Google Cloud Deploy verwendet Pub/Sub, um Benachrichtigungen für zwei Zwecke zu veröffentlichen:
Damit Sie Google Cloud Deploy in Tools von Drittanbietern und andere Google-Tools wie Tools für das Workflow-Ticketing oder die Testinfrastruktur einbinden können.
Um Google Cloud Deploy zusätzliche Geschäftslogik hinzuzufügen.
Verfügbare Themen
Google Cloud Deploy veröffentlicht Nachrichten an die folgenden Google Pub/Sub-Themen:
clouddeploy-resources
Wenn ein Vorgang (Erstellen, Aktualisieren, Löschen) für eine Google Cloud Deploy-Kernressource besteht (Bereitstellungspipeline, Release, Roll-out, Ziel).
clouddeploy-operations
Wenn Google Cloud Deploy die Skaffold-Konfiguration rendert oder für ein Ziel (
Start
,Succeed
,Failure
) bereitstellt.clouddeploy-approvals
- Wenn Google Cloud Deploy eine Genehmigung (oder Ablehnung) eines Rollouts benötigt.
- Wenn ein Rollout genehmigt oder abgelehnt wurde.
Sie können für Ihre Pub/Sub-Abos ein Push- oder Pull-Modell verwenden.
Google Cloud Deploy-Dienstbenachrichtigungen erhalten
So erhalten Sie Dienstbenachrichtigungen für Google Cloud Deploy:
Aktivieren Sie die Google Cloud Deploy API:
Google Cloud Deploy API aktivieren
Das Dienstkonto Cloud Deploy Service Agent wird Ihrem Projekt automatisch hinzugefügt, wenn Sie die Google Cloud Deploy API zum ersten Mal aufrufen. Mit diesem Dienstkonto können Sie Google Cloud Deploy-Dienstbenachrichtigungen mit Pub/Sub erhalten.
Der Name des Dienstkontos hat das folgende Format, wobei project-number Ihre Projektnummer ist:
service-project-number@gcp-sa-clouddeploy.iam.gserviceaccount.com
Wenn das Dienstkonto Cloud Deploy-Dienst-Agent immer noch nicht auf Ihrer IAM-Seite angezeigt wird oder Sie keine Pub/Sub-Benachrichtigungen erhalten, fügen Sie Ihrem Projekt dieses Dienstkonto hinzu:
Öffnen Sie die Seite IAM in der Google Cloud Console:
Klicken Sie auf Add (Hinzufügen).
Fügen Sie das folgende Hauptkonto hinzu, wobei project-number Ihre Projektnummer ist:
service-project-number@gcp-sa-clouddeploy.iam.gserviceaccount.com
Wählen Sie Service Management > Cloud Deploy-Dienst-Agent als Rolle aus.
Klicken Sie auf Speichern.
Pub/Sub API aktivieren:
Erstellen Sie das Pub/Sub-Thema oder die Pub/Sub-Themen, je nachdem, welche Benachrichtigungstypen Sie erhalten möchten:
gcloud pubsub topics create clouddeploy-resources gcloud pubsub topics create clouddeploy-operations gcloud pubsub topics create clouddeploy-approvals
Weitere Informationen zum Verwalten von Pub/Sub-Themen finden Sie unter Themen und Abos verwalten.
Google Cloud Deploy-Dienstbenachrichtigungen abonnieren
Sie haben verschiedene Möglichkeiten, 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 Benachrichtigungen des Google Cloud Deploy-Dienstes einrichten, erfahren Sie im Pub/Sub-Abonnentenleitfaden. Sie können darüber hinaus auch etwas über die Nutzung von Pub/Sub-Clientbibliotheken erfahren, die das Entwickeln von Abonnentenanwendungen erleichtern.
Feldwerte
In diesem Abschnitt werden mögliche Werte für Felder in den Nachrichten von Google Cloud Deploy Pub/Sub aufgeführt.
Für Action
In diesen Benachrichtigungen sind folgende Werte für Action
möglich:
Für Ressourcen
Create
Update
Delete
Für Vorgänge:
Start
Succeed
Failure
Für Genehmigungen:
Required
Approved
Rejected
Für ResourceType
Mögliche Werte für ResourceType
sind:
DeliveryPipeline
Target
Release
Rollout
JobRun
Beispielnachrichten
Die folgenden Beispiele zeigen verschiedene Arten von Pub/Sub-Nachrichten aus Google Cloud Deploy-Themen.
Bereitstellungspipeline erstellen
Das folgende Beispiel zeigt eine Pub/Sub-Nachricht, die in clouddeploy-resources
als Antwort auf die Erstellung eines neuen deliveryPipeline
veröffentlicht wird:
{
"ackId": "RFAGFixdRkhRNxkIaFEOT14jPzUgKEUQBQgUBXx9cEFMdVhddmhRDRlyfWByY11AAgVMVnldURsHaE5tdR_Wg6LHS0NVaF4TBgpGVX5fXx0IYVtedi_m7r_2wPXOXkAvOYXL6Mtpe735h9xvZiM9XxJLLD5-IzRFQV5AEkwoAURJUytDCypYEU4EISE-MD5FUw",
"message": {
"attributes": {
"Action": "Create",
"Resource": "projects/120123456789/locations/us-central1/deliveryPipelines/etest",
"ResourceType": "DeliveryPipeline",
"Location": "us-central1",
"DeliveryPipelineId": "etest",
"ProjectNumber": "120123456789",
},
"messageId": "2407836004659723",
"publishTime": "2021-05-17T21:24:48.204Z"
}
}
Renderingstart
Im Folgenden finden Sie ein Beispiel für eine Pub/Sub-Nachricht, die in clouddeploy-operations
veröffentlicht wurde, um zu benachrichtigen, dass ein Release gerendert wurde:
{
"ackId": "U0RQBhYsXUZIUTcZCGhRDk9eIz81IChFFwYIFAV8fXBBTHVeXHRoUQ0Zcn1gcmNfR1MLFlN5WFEaB2hObXUfioKix0tDVWheEwYKRVZ3W1kdBGFVXH0v_qD5rMP1zl5AKDnZyujLaXudkqxfZiM9XxJLLD5-PTNFQV5AEkw2BkRJUytDCypYEU4EISE-MD5F",
"message": {
"attributes": {
"Action": "Start",
"Resource": "projects/120123456789/locations/us-central1/deliveryPipelines/etest/releases/f2",
"ResourceType": "Release"
"Location": "us-central1",
"DeliveryPipelineId": "etest",
"ProjectNumber": "120123456789",
"ReleaseId": "f2",
},
"messageId": "2407805942699908",
"publishTime": "2021-05-17T21:28:04.201Z"
}
}
Genehmigung erforderlich
Das folgende Beispiel zeigt eine Pub/Sub-Nachricht, die in clouddeploy-approvals
veröffentlicht wird, um zu informieren, dass für einen Rollout eine Genehmigung erforderlich ist:
{
"ackId": "RVNEUAYWLF1GSFE3GQhoUQ5PXiM_NSAoRRILUxNRXHQBWhBpWF8aB1ENGXJ8ZnxtCRBVU0FWf1VbEQ16bVxti6C2rERfQXduWhQJBkBXd11aHQhoXF9dotnkpeTv2kFwYSuN8_7mSH_Mo6AYZiA9XBJLLD5-IzZFQV5AEkwoA0RJUytDCypYEU4EISE-MD4",
"message": {
"attributes": {
"Action": "Required",
"Rollout": "projects/120123456789/locations/us-central1/deliveryPipelines/etest/releases/f2/rollouts/rollout-123"
"ReleaseId": "f2",
"RolloutId": "rollout-123",
"TargetId": "prod",
"Location": "us-central1",
"ProjectNumber": "120123456789",
},
"messageId": "2407845492165003",
"publishTime": "2021-05-17T21:31:25.143Z"
}
}