Cloud Deploy-Benachrichtigungen verwenden

Auf dieser Seite wird beschrieben, wie Sie Cloud Deploy-Dienstbenachrichtigungen verwenden und abonnieren.

Cloud Deploy verwendet Pub/Sub zum Veröffentlichen von Benachrichtigungen für zwei Zwecke:

  • Damit Sie Cloud Deploy in Tools von Drittanbietern und andere Google-Tools einbinden können, z. B. Tools für das Workflow-Ticketing oder die Testinfrastruktur.

  • So erweitern Sie Cloud Deploy durch zusätzliche Geschäftslogik.

Verfügbare Themen

Cloud Deploy veröffentlicht Nachrichten an die folgenden Google Pub/Sub-Themen:

  • clouddeploy-resources

    Bei einem Vorgang (Erstellen, Aktualisieren, Löschen) einer Cloud Deploy-Kernressource (Automatisierung, benutzerdefinierter Zieltyp, Bereitstellungspipeline, Jobausführung, Release, Roll-out, Ziel).

  • clouddeploy-operations

    • Wenn Cloud Deploy die Skaffold-Konfiguration rendert.
    • Wenn Cloud Deploy auf einem Ziel (Start, Succeed, Failure, Terminated (Jobausführung), Cancelled (Rollout)) bereitstellt.
  • clouddeploy-approvals

    • Wenn Cloud Deploy eine Genehmigung (oder Ablehnung) eines Roll-outs benötigt.
    • Wenn ein Rollout genehmigt oder abgelehnt wurde.
  • clouddeploy-advances

    • Wenn ein Cloud Deploy-Rollout von einer Phase in die nächste übergeht.
    • Wenn ein Roll-out zur Fortsetzung bereit ist.

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

Benachrichtigungen zu Cloud Deploy-Diensten erhalten

So erhalten Sie Cloud Deploy-Dienstbenachrichtigungen:

  1. Aktivieren Sie die Cloud Deploy API:

    Cloud Deploy API aktivieren

    Das Dienstkonto Cloud Deploy-Dienst-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 über Pub/Sub empfangen.

    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 können, fügen Sie Ihrem Projekt dieses Dienstkonto hinzu:

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

      Seite "IAM" öffnen

    2. Klicken Sie auf Hinzufügen.

    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
    gcloud pubsub topics create clouddeploy-advances
    

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

Benachrichtigungen für Cloud Deploy-Dienst 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.

Informationen zum Einrichten von Pub/Sub-Abos für Cloud Deploy-Dienstbenachrichtigungen finden 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 Vorabschlüsse:

    • Required
    • Advanced

Für ResourceType

Und die möglichen Werte für ResourceType sind:

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

Fortsetzung der Einführung

Das folgende Beispiel zeigt eine Pub/Sub-Nachricht, die in clouddeploy-advances veröffentlicht wird, um darüber zu informieren, dass ein Roll-out von einer Phase in die nächste übergegangen 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, auf die der Roll-out erweitert wurde.

Nächste Schritte