Cloud Build publie des messages dans un sujet Google Pub/Sub lorsque l'état de la compilation change, par exemple lors de la création de la compilation, lorsque la compilation passe à un état fonctionnel et lorsque la compilation se termine. Chaque message contient une représentation de votre ressource Build sous forme de chaîne JSON encodée en base64 dans l'attribut message.data
. L'ID unique de la compilation et son état sont renseignés dans le champ message.attributes
.
Par défaut, les messages sont publiés dans le sujet cloud-builds
. Vous pouvez également spécifier un nom de sujet personnalisé dans le champ options.pubsubTopic
de votre fichier de configuration de compilation. Pour en savoir plus sur la configuration des noms de sujets dans votre fichier de configuration de compilation, consultez la section Sujets Pub/Sub pour les notifications de compilation.
Vous pouvez utiliser un modèle push ou pull avec vos abonnements Pub/Sub.
Recevoir des notifications de compilation
Pour recevoir des notifications de compilation, procédez comme suit :
Activez l'API Cloud Build :
Lorsque vous activez l'API Cloud Build, le compte de service Agent de service Cloud Build est automatiquement ajouté à votre projet. Le compte de service vous permet de recevoir des notifications de compilation de Pub/Sub.
Le compte de service a le format suivant, où project-number est le numéro de votre projet:
service-project-number@gcp-sa-cloudbuild.iam.gserviceaccount.com
Si le compte de service de l'agent de service Cloud Build ne s'affiche pas sur votre page IAM ou si vous ne pouvez pas recevoir de notifications de Pub/Sub, procédez comme suit pour ajouter le compte de service de l'agent de service Cloud Build à votre projet:
Ouvrez la page IAM dans Google Cloud Console:
Cliquez sur Accorder l'accès.
Ajoutez le compte principal suivant, où project-number correspond au numéro de votre projet :
service-project-number@gcp-sa-cloudbuild.iam.gserviceaccount.com
Pour votre rôle, sélectionnez Agents de service > Agent de service Cloud Build.
Cliquez sur Enregistrer.
Activer l'API Pub/Sub :
Créez le sujet
cloud-builds
:gcloud pubsub topics create cloud-builds
Vous pouvez également définir un nom de sujet personnalisé dans votre fichier de configuration de compilation afin que les messages soient envoyés au sujet personnalisé. Dans ce cas, vous devez créer un sujet portant le même nom de sujet personnalisé:
gcloud pubsub topics create topic-name
Pour en savoir plus, consultez la section Sujets Pub/Sub pour les notifications de compilation.
Pour en savoir plus sur la gestion des sujets Pub/Sub, consultez la section Gérer les sujets et les abonnements.
Abonnements Push
Les abonnements Push envoient des messages à un point de terminaison HTTP que vous définissez. Les messages sont diffusés dès qu'ils sont publiés dans le thème.
Les messages envoyés depuis des abonnements Push se présentent comme suit :
{
"message": {
"attributes": {
"buildId": "abcd-efgh...",
"status": "SUCCESS"
},
"data": "SGVsbG8gQ2xvdWQgUHViL1N1YiEgSGVyZSBpcyBteSBtZXNzYWdlIQ==",
"message_id": "136969346945"
},
"subscription": "projects/myproject/subscriptions/mysubscription"
}
Abonnements pull
Les abonnements Pull envoient des messages lorsqu'ils sont interrogés par l'application souscrite. Les messages sont diffusés lorsque l'abonnement est interrogé.
Les messages envoyés depuis des abonnements Pull se présentent comme suit :
{
"receivedMessages": [
{
"ackId": "dQNNHlAbEGEIBERNK0EPKVgUWQYyODM2LwgRHFEZDDsLRk1SK...",
"message": {
"attributes": {
"buildId": "abcd-efgh-...",
"status": "SUCCESS"
},
"data": "SGVsbG8gQ2xvdWQgUHViL1N1YiEgSGVyZSBpcyBteSBtZXNzYWdlIQ==",
"messageId": "19917247034"
}
}
]
}
S'abonner aux notifications de mise à jour de compilation
Vous disposez de plusieurs options pour vous abonner aux notifications de mise à jour de compilation. 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 les abonnements Pub/Sub pour les informations de compilation, 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.
Pour découvrir comment utiliser Pub/Sub pour envoyer des mises à jour de compilation par e-mail ou à des services tels que Slack, consultez la section Systèmes d'alerte Cloud Build.