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:

    Abilita l'API Cloud Deploy

    L'account di servizio Cloud Deploy Service Agent viene aggiunto automaticamente al progetto quando chiami per la prima volta l'API Cloud Deploy. Questo account di servizio ti consente di ricevere notifiche del servizio Cloud Deploy utilizzando Pub/Sub.

    Il nome dell'account di servizio ha il seguente formato, dove project-number è il numero del progetto:

     service-project-number@gcp-sa-clouddeploy.iam.gserviceaccount.com
    

    Se non vedi ancora l'account di servizio Agente di servizio Cloud Deploy nella pagina IAM o non riesci a ricevere le notifiche Pub/Sub, aggiungi questo account di servizio al progetto:

    1. Apri la pagina IAM nella console Google Cloud:

      Apri la pagina IAM

    2. Fai clic su Aggiungi.

    3. Aggiungi il seguente entità, dove project-number è il numero del progetto:

      service-project-number@gcp-sa-clouddeploy.iam.gserviceaccount.com
      
    4. Seleziona Gestione servizi > Agente di servizio Cloud Deploy come ruolo.

    5. Fai clic su Salva.

  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