Utilizzo delle notifiche di Cloud Deploy

Questa pagina descrive come utilizzare le notifiche di servizio di Cloud Deploy, incluso come abbonarsi.

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 quelli 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 messaggi nel seguente insieme di argomenti Google Pub/Sub:

  • clouddeploy-resources

    Quando viene eseguita un'operazione (creazione, aggiornamento, eliminazione) su qualsiasi risorsa core di Cloud Deploy (automazione, tipo di target personalizzato, pipeline di distribuzione, esecuzione del job, release, rollout, 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 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 lancio è pronto per essere avanzato.

Puoi utilizzare un modello push o pull per gli abbonamenti Pub/Sub.

Ricevere notifiche del servizio Cloud Deploy

Per ricevere le notifiche del servizio Cloud Deploy:

  1. Abilita l'API Cloud Deploy per il tuo progetto:

    Abilita l'API Cloud Deploy

  2. Abilita l'API Pub/Sub:

    Abilita l'API Pub/Sub

  3. 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 saperne di più sulla gestione degli argomenti Pub/Sub, consulta Creare un argomento.

Iscriviti alle notifiche del servizio Cloud Deploy

Puoi configurare le notifiche del servizio Cloud Deploy per gli abbonamenti push e gli abbonamenti pull. Per scoprire come configurare le sottoscrizioni Pub/Sub per queste notifiche, consulta Scegliere un tipo di sottoscrizione. Puoi anche scoprire di più sulle librerie client Pub/Sub, che semplificano lo sviluppo di applicazioni di sottoscrizione.

Valori del campo

Questa sezione elenca i valori possibili per i campi nei 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 seguenti mostrano diversi tipi di messaggi Pub/Sub provenienti da 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 rendering

Di seguito è riportato un esempio di messaggio Pub/Sub pubblicato in clouddeploy-operations per comunicare che una release è stata sottoposta a rendering:

{
  "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 comunicare che un lancio 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"
   }
 }

Prosegui con implementazione

Di seguito è riportato un esempio di messaggio Pub/Sub pubblicato in clouddeploy-advances per comunicare che un'implementazione è stata avanzata da una fase alla 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 a cui è stato portato l'implementazione.

Passaggi successivi