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:
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:
Apri la pagina IAM nella console Google Cloud:
Fai clic su Aggiungi.
Aggiungi il seguente entità, dove project-number è il numero del progetto:
service-project-number@gcp-sa-clouddeploy.iam.gserviceaccount.com
Seleziona Gestione servizi > Agente di servizio Cloud Deploy come ruolo.
Fai clic su Salva.
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.