Utilizzo delle notifiche di Cloud Deploy

Questa pagina descrive come utilizzare le notifiche del servizio Cloud Deploy, incluso come iscriversi.

Cloud Deploy utilizza Pub/Sub per pubblicare notifiche per due scopi:

  • Per consentirti di integrare Cloud Deploy con strumenti di terze parti e altri strumenti Google, come gli strumenti per la gestione delle richieste di assistenza o l'infrastruttura di test.

  • Per estendere Cloud Deploy con logica di business supplementare.

Argomenti disponibili

Cloud Deploy pubblica i messaggi nel seguente insieme di argomenti Google Pub/Sub:

  • clouddeploy-resources

    Quando viene eseguita un'operazione (creazione, aggiornamento, eliminazione) su qualsiasi risorsa di base di Cloud Deploy (automazione, tipo di target personalizzato, pipeline di distribuzione, esecuzione di job, release, implementazione, target).

  • clouddeploy-operations

    • Quando Cloud Deploy esegue il rendering della configurazione di Skaffold.
    • Quando Cloud Deploy esegue il deployment in un target (Start, Succeed, Failure, Terminated (esecuzione del job), Cancelled (implementazione)).
  • clouddeploy-approvals

    • Quando Cloud Deploy ha bisogno dell'approvazione (o del rifiuto) di un'implementazione.
    • Quando un'implementazione è stata approvata o rifiutata.
  • clouddeploy-advances

    • Quando un'implementazione di Cloud Deploy è passata da una fase alla successiva.
    • Quando un'implementazione è pronta per essere avanzata.

Puoi utilizzare un modello push o pull per le tue sottoscrizioni Pub/Sub.

Ricevere notifiche del servizio Cloud Deploy

Per ricevere notifiche del servizio Cloud Deploy:

  1. Abilita l'API Cloud Deploy per il tuo progetto:

    Abilita l'API Cloud Deploy

  2. Abilita l'API Pub/Sub:

    Abilita l'API Pub/Sub

  3. Crea l'argomento o gli argomenti Pub/Sub in base ai tipi di notifiche che vuoi ricevere:

    gcloud pubsub topics create clouddeploy-resources
    gcloud pubsub topics create clouddeploy-operations
    gcloud pubsub topics create clouddeploy-approvals
    gcloud pubsub topics create clouddeploy-advances
    

    Per scoprire di più sulla gestione degli argomenti Pub/Sub, consulta Gestire argomenti e iscrizioni.

Iscriverti alle notifiche del servizio Cloud Deploy

Hai diverse opzioni per iscriverti alle notifiche. Ad esempio, puoi inviare messaggi a un endpoint o scrivere un'app Python per eseguire il polling del tuo abbonamento.

Per scoprire come configurare le sottoscrizioni Pub/Sub per le notifiche del servizio Cloud Deploy, leggi la guida per gli abbonati a Pub/Sub. Puoi anche scoprire di più sulle librerie client Pub/Sub, che semplificano lo sviluppo di applicazioni di abbonamento.

Valori dei campi

Questa sezione elenca i possibili valori per i campi dei messaggi Pub/Sub di Cloud Deploy.

Per Action

In queste notifiche, i valori possibili per Action sono i seguenti.

  • Per le risorse

    • Create
    • Update
    • Delete
  • Per le operazioni:

    • Start
    • Succeed
    • Failure
    • Terminated
    • Cancelled
  • Per le approvazioni:

    • Required
    • Approved
    • Rejected
  • Per gli anticipi:

    • Required
    • Advanced

Per ResourceType

I valori possibili per ResourceType sono:

  • DeliveryPipeline
  • Target
  • Release
  • Rollout
  • JobRun

Messaggi di esempio

Gli esempi riportati di seguito mostrano diversi tipi di messaggi Pub/Sub degli argomenti Cloud Deploy.

Creazione della pipeline di distribuzione

Di seguito è riportato un esempio di messaggio Pub/Sub pubblicato in clouddeploy-resources in risposta alla creazione di un nuovo deliveryPipeline:

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

Inizio del rendering

Di seguito è riportato un esempio di messaggio Pub/Sub pubblicato in clouddeploy-operations per notificare che è stata eseguita il rendering di una release:

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

È necessaria un'approvazione

Di seguito è riportato un esempio di messaggio Pub/Sub pubblicato in clouddeploy-approvals per notificare che l'implementazione richiede l'approvazione:

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

Aggiornamento sull'implementazione

Di seguito è riportato un esempio di messaggio Pub/Sub pubblicato in clouddeploy-advances per notificare che un'implementazione è passata da una fase all'altra:

{
  "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 questo messaggio, PhaseId identifica la fase in cui è stato completato l'implementazione.

Passaggi successivi