Utiliser les notifications Cloud Deploy

Cette page explique comment utiliser les notifications du service Cloud Deploy, y compris comment s'y abonner.

Cloud Deploy utilise Pub/Sub pour publier des notifications à deux fins :

  • Pour vous permettre d'intégrer Cloud Deploy à des outils tiers et à d'autres outils Google, tels que les outils de gestion des workflows ou d'infrastructure de test.

  • Pour étendre Cloud Deploy à l'aide d'une logique métier supplémentaire.

Thèmes disponibles

Cloud Deploy publie des messages dans l'ensemble de sujets Google Pub/Sub suivants :

  • clouddeploy-resources

    Lorsqu'une opération (création, mise à jour, suppression) est effectuée sur une ressource Cloud Deploy principale (automatisation, type de cible personnalisée, pipeline de déploiement, exécution de job, version, déploiement, cible).

  • clouddeploy-operations

    • Lorsque Cloud Deploy affiche la configuration Skaffold.
    • Lorsque Cloud Deploy effectue un déploiement sur une cible (Start, Succeed, Failure, Terminated (exécution de job), Cancelled (déploiement)).
  • clouddeploy-approvals

    • Lorsque Cloud Deploy a besoin d'une approbation (ou d'un refus) pour un déploiement.
    • Lorsqu'un déploiement a été approuvé ou refusé.
  • clouddeploy-advances

    • Lorsqu'un déploiement Cloud Deploy est passé d'une phase à la suivante.
    • Lorsqu'un déploiement est prêt à être avancé.

Vous pouvez utiliser un modèle push ou pull avec vos abonnements Pub/Sub.

Recevoir des notifications de service Cloud Deploy

Pour recevoir des notifications du service Cloud Deploy :

  1. Activez l'API Cloud Deploy pour votre projet :

    Activer l'API Cloud Deploy

  2. Activer l'API Pub/Sub :

    Activez l'API Pub/Sub

  3. Créez le ou les sujets Pub/Sub en fonction des types de notifications que vous souhaitez recevoir :

    gcloud pubsub topics create clouddeploy-resources
    gcloud pubsub topics create clouddeploy-operations
    gcloud pubsub topics create clouddeploy-approvals
    gcloud pubsub topics create clouddeploy-advances
    

    Pour en savoir plus sur la gestion des sujets Pub/Sub, consultez Créer un sujet.

S'abonner aux notifications du service Cloud Deploy

Vous pouvez configurer les notifications de service Cloud Deploy pour les abonnements push et les abonnements pull. Pour savoir comment configurer des abonnements Pub/Sub pour ces notifications, consultez Choisir un type d'abonnement. Vous pouvez également en savoir plus sur les bibliothèques clientes Pub/Sub, qui facilitent le développement d'applications pour les abonnés.

Valeurs des champs

Cette section liste les valeurs possibles pour les champs des messages Cloud Deploy Pub/Sub.

Pour Action

Dans ces notifications, les valeurs possibles pour Action sont les suivantes :

  • Pour les ressources

    • Create
    • Update
    • Delete
  • Pour les opérations :

    • Start
    • Succeed
    • Failure
    • Terminated
    • Cancelled
  • Pour les approbations :

    • Required
    • Approved
    • Rejected
  • Pour les avances :

    • Required
    • Advanced

Pour ResourceType

Les valeurs possibles pour ResourceType sont les suivantes :

  • DeliveryPipeline
  • Target
  • Release
  • Rollout
  • JobRun

Exemples de messages

Les exemples suivants montrent plusieurs types de messages Pub/Sub provenant de sujets Cloud Deploy.

Créer un pipeline de livraison

Voici un exemple de message Pub/Sub publié sur clouddeploy-resources en réponse à la création d'un 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"
  }
}

Début du rendu

Voici un exemple de message Pub/Sub publié sur clouddeploy-operations pour indiquer qu'une version a été générée :

{
  "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"
  }
}

Approbation requise

Voici un exemple de message Pub/Sub publié sur clouddeploy-approvals pour indiquer qu'un déploiement nécessite une approbation :

{
   "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"
   }
 }

Avancer le déploiement

Voici un exemple de message Pub/Sub publié sur clouddeploy-advances pour indiquer qu'un déploiement est passé d'une phase à la suivante :

{
  "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"
  }
}

Dans ce message, PhaseId identifie la phase à laquelle le déploiement a été avancé.

Étapes suivantes