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:
- Abilita l'API Cloud Deploy per il tuo progetto: 
- Abilita l'API Pub/Sub: 
- 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.