Cette page explique comment utiliser les notifications du service Cloud Deploy, y compris comment vous y abonner.
Google 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 des outils de gestion des demandes d'assistance 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
En cas d'opération (création, mise à jour, suppression) sur une ressource de base Cloud Deploy (automatisation, type de cible personnalisée, pipeline de diffusion, exécution de tâche, version, déploiement, cible).
clouddeploy-operations
- Lorsque Cloud Deploy génère la configuration Skaffold.
- Lorsque Cloud Deploy déploie une application sur une cible (
Start
,Succeed
,Failure
,Terminated
(exécution de la tâche),Cancelled
(déploiement)).
clouddeploy-approvals
- Lorsque Cloud Deploy a besoin d'une approbation (ou d'un refus) d'un déploiement.
- Lorsque le déploiement a été approuvé ou refusé.
clouddeploy-advances
- Lorsqu'un déploiement Cloud Deploy est passé d'une phase à l'autre.
- Lorsque le déploiement est prêt à être avancé.
Vous pouvez utiliser un modèle push ou pull avec vos abonnements Pub/Sub.
Recevoir des notifications du service Cloud Deploy
Pour recevoir des notifications sur le service Cloud Deploy:
Activez l'API Cloud Deploy:
Le compte de service 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 du 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 le compte de service Agent de service Cloud Deploy ne s'affiche toujours pas sur votre page IAM ou si vous ne pouvez pas recevoir de notifications Pub/Sub, ajoutez ce compte de service à votre projet:
Ouvrez la page IAM dans Google Cloud Console:
Cliquez sur Ajouter.
Ajoutez le compte principal suivant, où project-number correspond au numéro de votre projet :
service-project-number@gcp-sa-clouddeploy.iam.gserviceaccount.com
Sélectionnez Service Management > Agent de service Cloud Deploy.
Cliquez sur Enregistrer.
Activer l'API Pub/Sub :
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 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.
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 présentent plusieurs types de messages Pub/Sub provenant de sujets Cloud Deploy.
Création du 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
Vous trouverez ci-dessous 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"
}
}
Déploiement avancé
Voici un exemple de message Pub/Sub publié sur clouddeploy-advances
pour indiquer qu'un déploiement est passé d'une phase à l'autre:
{
"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é.