Cloud Deploy-Benachrichtigungen verwenden

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:

  1. Aktivieren Sie die Cloud Deploy API:

    Cloud Deploy API aktivieren

    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:

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

      IAM-Seite ö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
    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.

Nächste Schritte