Questa pagina descrive come utilizzare le notifiche del servizio Cloud Deploy, incluse le modalità di iscrizione.
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 una destinazione (
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 le tue sottoscrizioni Pub/Sub.
Ricevi 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 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 dell'agente di servizio Cloud Deploy su la tua pagina IAM, altrimenti non potrai ricevere Pub/Sub notifiche, aggiungi questo account di servizio progetto:
Apri la pagina IAM nella console Google Cloud:
Fai clic su Aggiungi.
Aggiungi il seguente principale, 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:
Creare l'argomento o gli argomenti Pub/Sub in base alla notifica tipi 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.
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.
Scopri come configurare le sottoscrizioni Pub/Sub per Cloud Deploy notifiche di servizio, leggi la guida per gli abbonati 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 della 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.