Cloud Deploy-Benachrichtigungen verwenden

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

Cloud Deploy verwendet Pub/Sub, um Benachrichtigungen zu zwei Zwecken zu veröffentlichen:

  • Für die Einbindung von Cloud Deploy in Tools von Drittanbietern und andere Google-Tools, z. B. Tools für Workflow-Ticketerstellung oder Testinfrastruktur

  • Zum Erweitern von Cloud Deploy mit ergänzender Geschäftslogik.

Verfügbare Themen

Cloud Deploy veröffentlicht Nachrichten an die folgende Gruppe von Google Pub/Sub-Themen:

  • clouddeploy-resources

    Wenn ein Vorgang (Erstellen, Aktualisieren, Löschen) für eine Kernressource von Cloud Deploy (Automatisierung, benutzerdefinierter Zieltyp, Bereitstellungspipeline, Jobausführung, Release, Rollout, Ziel).

  • clouddeploy-operations

    • Wenn Cloud Deploy die Skaffold-Konfiguration rendert.
    • Wenn Cloud Deploy in einem Ziel (Start, Succeed, Failure, Terminated (Jobausführung), Cancelled (Rollout).
  • 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-Roll-out von einer Phase in das nächste.
    • Wenn ein Roll-out zur Fortsetzung bereit ist.

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. Dieser Dienst Konto ermöglicht Ihnen, Cloud Deploy-Dienstbenachrichtigungen zu erhalten mit Pub/Sub.

    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 angezeigt wird Ihre IAM-Seite an oder Sie empfangen Pub/Sub Benachrichtigungen erhalten möchten, fügen Sie dieses Dienstkonto Projekt:

    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.

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

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

Vorlauf der Einführung

Das folgende Beispiel zeigt eine Pub/Sub-Nachricht, die in clouddeploy-advances, um zu benachrichtigen, dass ein Roll-out aus einer Phase fortgeführt wurde zum nächsten:

{
  "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 das Roll-out abgeschlossen wurde. zu gelangen.

Nächste Schritte