Utilizzo delle notifiche di Cloud Deploy

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:

  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 dell'agente di servizio Cloud Deploy su la tua pagina IAM, altrimenti non potrai ricevere Pub/Sub notifiche, aggiungi questo account di servizio progetto:

    1. Apri la pagina IAM nella console Google Cloud:

      Apri la pagina IAM

    2. Fai clic su Aggiungi.

    3. Aggiungi il seguente principale, dove project-number è il numero del 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. 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.

Passaggi successivi