Auf dieser Seite wird beschrieben, wie Sie Cloud Deploy-Dienstbenachrichtigungen verwenden und abonnieren.
Cloud Deploy verwendet Pub/Sub, um Benachrichtigungen zu zwei Zwecken zu veröffentlichen:
Damit Sie Cloud Deploy in Tools von Drittanbietern und andere Google-Tools wie Tools für das Workflow-Ticketing oder die Testinfrastruktur einbinden können.
Um Cloud Deploy zusätzliche Geschäftslogik hinzuzufügen.
Verfügbare Themen
Cloud Deploy veröffentlicht Nachrichten an die folgenden Google Pub/Sub-Themen:
clouddeploy-resources
Bei einem Vorgang (Erstellen, Aktualisieren, Löschen) für eine der Cloud Deploy-Kernressourcen (Automatisierung, benutzerdefinierter Zieltyp, Bereitstellungspipeline, Jobausführung, Release, Roll-out, Ziel).
clouddeploy-operations
- Wenn Cloud Deploy die Skaffold-Konfiguration rendert.
- Wenn Cloud Deploy für ein Ziel bereitgestellt wird (
Start
,Succeed
,Failure
,Terminated
(Jobausführung),Cancelled
(Roll-out)).
clouddeploy-approvals
- Wenn Cloud Deploy eine Genehmigung (oder Ablehnung) eines Rollouts benötigt.
- Wenn ein Rollout genehmigt oder abgelehnt wurde.
clouddeploy-advances
- Wenn ein Cloud Deploy-Roll-out von einer Phase in die nächste fortgesetzt wurde.
- Wenn ein Roll-out fortgesetzt werden kann.
Sie können für Ihre Pub/Sub-Abos ein Push- oder Pull-Modell verwenden.
Cloud Deploy-Dienstbenachrichtigungen erhalten
So erhalten Sie Cloud Deploy-Dienstbenachrichtigungen:
Aktivieren Sie die Cloud Deploy API:
Das Dienstkonto Cloud Deploy Service Agent wird Ihrem Projekt automatisch hinzugefügt, wenn Sie die Cloud Deploy API zum ersten Mal aufrufen. Mit diesem Dienstkonto können Sie 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 Service Agent noch nicht auf Ihrer IAM-Seite angezeigt wird oder Sie keine Pub/Sub-Benachrichtigungen erhalten können, fügen Sie das Dienstkonto Ihrem Projekt hinzu:
Öffnen Sie in der Google Cloud Console die Seite IAM.
Klicken Sie auf Add.
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 gcloud pubsub topics create clouddeploy-advances
Weitere Informationen zum Verwalten von Pub/Sub-Themen finden Sie unter Themen und Abos verwalten.
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 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 Cloud Deploy Pub/Sub-Nachrichten 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
Terminated
Cancelled
Für Genehmigungen:
Required
Approved
Rejected
Für Vorschüsse gilt Folgendes:
Required
Advanced
Für ResourceType
Die möglichen Werte für ResourceType
sind so:
DeliveryPipeline
Target
Release
Rollout
JobRun
Beispielnachrichten
Die folgenden Beispiele zeigen verschiedene Arten von Pub/Sub-Nachrichten aus 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"
}
}
Roll-out fortsetzen
Das folgende Beispiel zeigt eine Pub/Sub-Nachricht, die in clouddeploy-advances
veröffentlicht wird, um zu informieren, dass ein Roll-out von einer Phase in die nächste fortgeschritten ist:
{
"ackId": "RFAGFixdRkhRNxkIaFEOT14jPzUgKEUSAwVPAihdeTFXKkFZdWhRDRlyfWB9bV4UUFZMV38OURoHaE5tdR_z4ILjS0NVbVkQBApEUHldXhkEa1RcfC-a0fmv1OzMV0AvOaCoyO9pe77r3NluZiM9XhJLLD5-Jz1FQV5AEkwsCERJUytDCypYEU4EISE-MD5FUw",
"message": {
"attributes": {
"Action": "Advanced",
"Location": "us-central1",
"PhaseId": "stable",
"ProjectNumber": "120123456789",
"ReleaseId": "rollout-123",
"Rollout": "projects/120123456789/locations/us-central1/deliveryPipelines/etest/releases/f2/rollouts/rollout-123",
"RolloutId": "rollout-123",
"TargetId": "prod"
},
"messageId": "7335813725293809",
"publishTime": "2023-04-03T15:16:30.425Z"
}
}
In dieser Nachricht gibt PhaseId
die Phase an, in der sich das Roll-out befindet.