Google Cloud Deploy-Benachrichtigungen abonnieren

Google 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 Google Cloud Deploy-Kernressourcen (Bereitstellungspipeline, Release, Rollout, 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.

Benachrichtigungen zu Google Cloud Deploy-Diensten erhalten

So erhalten Sie Dienstbenachrichtigungen für Google Cloud Deploy:

  1. 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 Service Agent noch nicht auf Ihrer IAM-Seite angezeigt wird oder Sie keine Benachrichtigungen mit Pub/Sub erhalten können, befolgen Sie diese Schritte, um das Dienstkonto zu Ihrem Projekt hinzuzufügen.

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

      Seite "IAM" öffnen

    2. Klicken Sie auf Add.

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

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

    5. Klicken Sie auf Speichern.

  2. Pub/Sub API aktivieren:

    Pub/Sub API aktivieren

  3. 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.

Wie kann ich 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

Die möglichen Werte für ResourceType sind so:

  • DeliveryPipeline
  • Target
  • Release
  • Rollout

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"
   }
 }

Nächste Schritte