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:

  • Vous pouvez intégrer Cloud Deploy à des outils tiers et à d'autres outils Google, tels que des outils de billetterie de workflow ou de test d'infrastructure.

  • Étendre Cloud Deploy avec une logique métier supplémentaire

Thèmes disponibles

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

  • clouddeploy-resources

    En cas d'opération (création, mise à jour, suppression) sur n'importe quelle ressource principale Cloud Deploy (automatisation, type de cible personnalisé, pipeline de livraison, exécution de job, publication, déploiement, cible).

  • clouddeploy-operations

    • Lorsque Cloud Deploy affiche la configuration Skaffold
    • Lorsque Cloud Deploy est déployé sur une cible (Start, Succeed, Failure, Terminated (exécution de tâche), Cancelled (déploiement)).
  • clouddeploy-approvals

    • Lorsque Cloud Deploy nécessite l'approbation (ou le refus) d'un déploiement.
    • Lorsqu'un déploiement a été approuvé ou refusé.
  • clouddeploy-advances

    • Lorsqu'un déploiement Cloud Deploy a été avancé d'une phase à l'autre.
    • 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 concernant le service Cloud Deploy

Pour recevoir des notifications concernant le service Cloud Deploy, procédez comme suit:

  1. Activez l'API Cloud Deploy:

    Activer l'API Cloud Deploy

    Le compte de service de l'agent de service Cloud Deploy est automatiquement ajouté à votre projet lorsque vous appelez l'API Cloud Deploy pour la première fois. Ce compte de service vous permet de recevoir des notifications de service Cloud Deploy à l'aide de Pub/Sub.

    Le nom du compte de service a le format suivant, où project-number est le numéro de votre projet :

     service-project-number@gcp-sa-clouddeploy.iam.gserviceaccount.com
    

    Si vous ne voyez toujours pas le compte de service Agent de service Cloud Deploy sur votre page IAM, ou si vous ne pouvez pas recevoir de notifications Pub/Sub, ajoutez ce compte de service à votre projet:

    1. Ouvrez la page IAM dans la console Google Cloud:

      Ouvrir la page IAM

    2. Cliquez sur Add (Ajouter).

    3. Ajoutez le compte principal suivant, où project-number correspond au numéro de votre projet :

      service-project-number@gcp-sa-clouddeploy.iam.gserviceaccount.com
      
    4. Sélectionnez Service Management > Agent de service Cloud Deploy.

    5. Cliquez sur Enregistrer.

  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 la page Gérer les sujets et les abonnements.

S'abonner aux notifications du service Cloud Deploy

Vous disposez de plusieurs options pour vous abonner aux notifications. Par exemple, vous pouvez envoyer des messages à un point de terminaison ou développer une application Python pour interroger votre abonnement.

Pour savoir comment configurer des abonnements Pub/Sub pour les notifications du service Cloud Deploy, consultez le Guide pour les abonnés Pub/Sub. Vous pouvez également en savoir plus sur les bibliothèques clientes Pub/Sub, qui facilitent le développement d'applications d'abonnés.

Valeurs des champs

Cette section répertorie les valeurs possibles des champs des messages Pub/Sub Cloud Deploy.

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

Et les valeurs possibles pour ResourceType sont les suivantes:

  • DeliveryPipeline
  • Target
  • Release
  • Rollout
  • JobRun

Exemples de messages

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

Création d'un pipeline de livraison

Voici un exemple de message Pub/Sub publié dans 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é dans clouddeploy-operations pour avertir qu'une version a été rendue:

{
  "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é dans clouddeploy-approvals pour avertir 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"
   }
 }

Avancement du déploiement

Voici un exemple de message Pub/Sub publié dans clouddeploy-advances pour avertir qu'un déploiement a été avancé 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