Questa pagina descrive come utilizzare le notifiche del servizio Cloud Deploy, incluso come abbonarsi.
Cloud Deploy utilizza Pub/Sub per pubblicare notifiche per due scopi:
Consente di integrare Cloud Deploy con strumenti di terze parti e altri strumenti Google, come strumenti per la gestione delle richieste di flusso di lavoro o l'infrastruttura di test.
Per estendere Cloud Deploy con una logica di business supplementare.
Argomenti disponibili
Cloud Deploy pubblica messaggi nel seguente insieme di argomenti Google Pub/Sub:
clouddeploy-resources
Quando è presente un'operazione (creazione, aggiornamento, eliminazione) su qualsiasi risorsa principale di Cloud Deploy (automazione, tipo di destinazione personalizzato, pipeline di distribuzione, esecuzione del job, rilascio, implementazione, destinazione).
clouddeploy-operations
- Quando Cloud Deploy esegue il rendering della configurazione Skaffold.
- Quando Cloud Deploy esegue il deployment in una destinazione (
Start
,Succeed
,Failure
,Terminated
(esecuzione 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 l'implementazione di Cloud Deploy è stata avanzata da una fase all'altra.
- 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 le notifiche del servizio Cloud Deploy:
Abilita l'API Cloud Deploy:
L'account di servizio dell'agente di servizio Cloud Deploy viene aggiunto automaticamente al progetto la prima volta che chiami l'API Cloud Deploy. Questo account di servizio ti consente di ricevere notifiche di servizio Cloud Deploy utilizzando Pub/Sub.
Il nome dell'account di servizio ha il formato seguente, dove project-number è il numero del progetto:
service-project-number@gcp-sa-clouddeploy.iam.gserviceaccount.com
Se ancora non vedi l'account di servizio dell'agente di servizio Cloud Deploy nella tua pagina IAM o non puoi ricevere notifiche Pub/Sub, aggiungi questo account di servizio al tuo progetto:
Apri la pagina IAM nella console Google Cloud:
Fai clic su Aggiungi.
Aggiungi la seguente entità, dove project-number è il numero del tuo progetto:
service-project-number@gcp-sa-clouddeploy.iam.gserviceaccount.com
Seleziona Service Management (Gestione servizio) > 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 notifica 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 la sezione sulla gestione degli argomenti e delle sottoscrizioni.
Iscriviti alle notifiche del servizio Cloud Deploy
Hai a disposizione diverse opzioni per iscriverti alle notifiche. Ad esempio, puoi eseguire il push dei messaggi a un endpoint o scrivere un'app Python per il polling della sottoscrizione.
Per informazioni su come configurare le sottoscrizioni Pub/Sub per le notifiche dei servizi Cloud Deploy, leggi la Guida per i sottoscrittori Pub/Sub. Puoi anche ottenere informazioni sulle librerie client Pub/Sub, che semplificano lo sviluppo di applicazioni per gli abbonati.
Valori dei campi
Questa sezione elenca i possibili valori per i campi nei messaggi Pub/Sub di Cloud Deploy.
Per Action
In queste notifiche, i possibili valori 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 i seguenti:
DeliveryPipeline
Target
Release
Rollout
JobRun
Messaggi di esempio
Gli esempi seguenti mostrano diversi tipi di messaggi Pub/Sub dagli argomenti di Cloud Deploy.
Creazione 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 rendering
Di seguito è riportato un esempio di messaggio Pub/Sub pubblicato in clouddeploy-operations
per notificare che è stato eseguito 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 un'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"
}
}
Avanzamento dell'implementazione
Di seguito è riportato un esempio di messaggio Pub/Sub pubblicato in clouddeploy-advances
per notificare che un'implementazione è stata avanzata da 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 è stata
avanzata l'implementazione.