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 di Google, ad esempio per la gestione delle richieste di assistenza per il flusso di lavoro o per i test dell'infrastruttura.

  • Per estendere Cloud Deploy con logica di business supplementare.

Argomenti disponibili

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

  • clouddeploy-resources

    Quando viene eseguita un'operazione (creazione, aggiornamento, eliminazione) su qualsiasi Risorsa principale di Cloud Deploy (automazione, tipo di destinazione personalizzato, pipeline di distribuzione, esecuzione del job, release, implementazione, destinazione).

  • 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 richiede l'approvazione (o il 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 il tuo 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 servizio 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 la seguente entità, dove project-number è il numero di 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 gli argomenti e le sottoscrizioni.

Iscriviti alle notifiche del servizio Cloud Deploy

Hai a disposizione 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

E i valori possibili per ResourceType sono i seguenti:

  • DeliveryPipeline
  • Target
  • Release
  • Rollout
  • JobRun

Messaggi di esempio

Gli esempi seguenti mostrano diversi tipi di messaggi Pub/Sub da argomenti di Cloud Deploy.

Creazione pipeline di distribuzione

Di seguito è riportato un esempio di messaggio Pub/Sub pubblicato 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 rendering

Di seguito è riportato un esempio di messaggio Pub/Sub pubblicato clouddeploy-operations per notificare l'esecuzione del 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 clouddeploy-advances per comunicare che è stata avanzata un'implementazione di una fase a quella successiva:

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