Les déclencheurs Cloud Build Pub/Sub vous permettent d'exécuter des compilations en réponse aux événements Google Cloud publiés sur Pub/Sub. Vous pouvez utiliser les informations d'un événement Pub/Sub pour paramétrer votre compilation et déterminer si une compilation doit s'exécuter en réponse à l'événement. Les déclencheurs Pub/Sub peuvent être configurés pour écouter n'importe quel sujet Pub/Sub.
Cette page explique comment créer un déclencheur Pub/Sub pour automatiser les compilations en réponse aux événements sur Artifact Registry, Container Registry (obsolète) et Cloud Storage.
Limites
Les déclencheurs Pub/Sub Cloud Build ne sont pas compatibles avec VPC Service Controls.
Avant de commencer
-
Enable the Cloud Build API.
- Assurez-vous que votre code source contient un fichier de configuration de compilation ou un
Dockerfile
dans le dépôt. Pour utiliser les commandes
gcloud
sur cette page, installez Google Cloud CLI.
Créer un déclencheur de compilation qui répond aux événements Artifact Registry
Vous pouvez créer un déclencheur Pub/Sub qui répond aux événements Artifact Registry tels que le moment où les images sont stockées, taguées ou supprimées. Cette section explique comment créer un déclencheur Pub/Sub qui appelle une compilation lorsqu'un nouveau tag est transféré vers une image existante. Si vous ne connaissez pas Artifact Registry, consultez la Présentation d'Artifact Registry
Console
Pour créer un déclencheur qui écoute une nouvelle balise une image existante dans Artifact Registry à l'aide de la console Google Cloud:
Ouvrez la page Déclencheurs :
Sélectionnez votre projet en haut de la page, puis cliquez sur Ouvrir.
Cliquez sur Créer un déclencheur.
Entrez les paramètres de déclencheur suivants :
- Nom : saisissez le nom de votre déclencheur.
Région : sélectionnez la région de votre déclencheur.
- Si le fichier de configuration de compilation associé au déclencheur spécifie un pool privé, Cloud Build utilise le pool privé pour exécuter votre compilation. Dans ce cas, la région que vous spécifiez dans votre déclencheur doit correspondre à celle dans laquelle vous avez créé votre pool privé.
- Si le fichier de configuration de compilation associé au déclencheur ne spécifie pas de pool privé, Cloud Build utilise le pool par défaut pour exécuter votre compilation dans la même région que votre déclencheur.
Description (facultative) : saisissez une description du déclencheur.
Événement: sélectionnez Message Pub/Sub comme événement pour appeler votre déclencheur.
Abonnement : Sélectionnez le sujet Pub/Sub auquel vous souhaitez vous abonner comme l'événement déclencheur. Tous les sujets existants dans votre projet s'affichent dans le menu déroulant.
- Sujet Pub/Sub: sélectionnez le sujet
gcr
dans le menu déroulant ou créez-le manuellement en suivant les instructionsConfigurer les notifications Pub/Sub.
- Sujet Pub/Sub: sélectionnez le sujet
Source: sélectionnez la source à compiler lorsque le déclencheur Pub/Sub s'exécute. Vous pouvez spécifier 1re génération ou 2e génération comme source.
Dépôt : sélectionnez le dépôt de votre choix dans la liste des dépôts disponibles.
Branche ou tag : spécifiez une expression régulière à laquelle faire correspondre la valeur de la branche ou du tag. Pour en savoir plus sur la syntaxe des expressions régulières acceptables, consultez la page Syntaxe RE2.
Contrôle des commentaires : si vous avez sélectionné Demande d'extraction (application GitHub uniquement) comme événement, choisissez l'une des options suivantes pour contrôler si une compilation doit être exécutée automatiquement par le déclencheur :
Obligatoire, sauf pour les propriétaires et les collaborateurs : lorsqu'une demande d'extraction est créée ou mise à jour par un propriétaire ou un collaborateur du dépôt, les compilations sont automatiquement exécutées par le déclencheur. Si un contributeur externe lance l'action, les compilations ne seront exécutées qu'après que le propriétaire ou le collaborateur a ajouté
/gcbrun
à la demande d'extraction.Obligatoire : lorsqu'une demande d'extraction est créée ou mise à jour par un contributeur, les compilations ne sont exécutées qu'après que le propriétaire ou le collaborateur a ajouté
/gcbrun
à la demande d'extraction. Les compilations sont exécutées chaque fois qu'une modification est apportée à une demande d'extraction.Non requis : lorsqu'une demande d'extraction est créée ou mise à jour par un contributeur, les compilations sont automatiquement exécutées par des déclencheurs.
Configuration: sélectionnez le fichier de configuration de compilation (situé dans votre dépôt distant) ou créez un fichier de configuration de compilation intégré à utiliser pour votre compilation.
- Type: sélectionnez le type de configuration à utiliser pour votre compilation.
- Fichier de configuration Cloud Build (yaml or json) : utilisez un fichier de configuration de compilation pour votre configuration.
- Dockerfile: utilisez un fichier
Dockerfile
pour votre configuration. - Buildpacks: utilisez des packs de création pour votre configuration.
Emplacement: spécifiez l'emplacement de votre configuration.
- Dépôt : si votre fichier de configuration se trouve dans votre dépôt distant, indiquez l'emplacement de votre fichier de configuration de compilation, le répertoire
Dockerfile
ou le répertoire packs de création. Si votre type de configuration de compilation est un fichierDockerfile
ou un pack de création, vous devez attribuer un nom à l'image obtenue et, éventuellement, un délai avant expiration pour la compilation. Une fois le nom de l'imageDockerfile
ou du pack de création fourni, vous obtenez un aperçu de la commandedocker build
oupack
que votre compilation va exécuter. - Variables d'environnement de pack de création (facultatif): si vous avez sélectionné
buildpacks
comme type de configuration, cliquez sur Ajouter une variable d'environnement de pack pour spécifier les variables d'environnement et valeurs de votre pack de création. Pour en savoir plus sur les variables d'environnement du pack de création, consultez la section Variables d'environnement. Intégré: si vous avez sélectionné Fichier de configuration Cloud Build (yaml ou json) comme option de configuration, vous pouvez spécifier votre configuration de compilation de manière intégrée. Cliquez sur Ouvrir l'éditeur pour écrire votre fichier de configuration de compilation dans la console Google Cloud à l'aide d'une syntaxe YAML ou JSON. Cliquez sur OK pour enregistrer la configuration de compilation.
- Dépôt : si votre fichier de configuration se trouve dans votre dépôt distant, indiquez l'emplacement de votre fichier de configuration de compilation, le répertoire
- Type: sélectionnez le type de configuration à utiliser pour votre compilation.
Substitutions (Facultatif): Si vous avez choisi le fichier de configuration de compilation comme option de configuration de la compilation, vous pouvez choisir de définir des Variables de substitution spécifique à un déclencheur en utilisant ce champ.
Dans l'exemple suivant, nous souhaitons obtenir le nom du tag d'image à partir de la charge utile et de l'action associée à l'événement
gcr
. Pour ce faire, créez des variables de substitution à l'aide de liaisons de charge utile.Spécifiez les variables et valeurs suivantes:
Nom de la variable Valeur de la variable _IMAGE_TAG
$(body.message.data.tag)
_ACTION
$(body.message.data.action)
body.message
référence le PubSubMessage publié par les éditeurs et consommé par les abonnés. Pour consulter plus d'exemples de la charge utile de la notification Pub/Sub, consultez la section Exemples de notifications.Filtres (facultatif): vous pouvez créer des filtres dans un déclencheur qui déterminent si votre déclencheur exécutera une compilation en réponse à la charge utile entrante en spécifiant des filtres sur les variables de substitution. L'expression de filtre doit renvoyer la valeur
true
pour qu'une compilation s'exécute.Nous vous recommandons d'utiliser le filtrage lorsque vous configurez des déclencheurs Pub/Sub sur des sujets contenant plusieurs messages. Les filtres peuvent être utilisés pour contrôler avec précision les compilations exécutées en réponse aux messages Pub/Sub entrants. Pour en savoir plus sur les risques associés à la configuration d'un déclencheur sans filtres, consultez la section Risques associés à un déclencheur non filtré.
Dans l'exemple suivant, nous souhaitons que le déclencheur exécute une compilation si un nouveau tag est transféré vers une image existante. Nous utilisons des opérateurs de condition de filtre pour vérifier si la variable
_IMAGE_TAG
correspond à un nom de tag existant et si la variable_ACTION
correspond àINSERT
pour rechercher les données nouvellement ajoutées.Spécifiez les filtres suivants:
_IMAGE_TAG
!=""
_ACTION
==INSERT
La syntaxe de filtrage des déclencheurs Pub/Sub utilise le CEL (Common Expression Language) pour l'évaluation des expressions. Pour en savoir plus sur le CEL, consultez le dépôt cel-spec.
- Cliquez sur Créer pour créer votre déclencheur de compilation.
gcloud
Pour créer un déclencheur qui écoute un nouveau tag transféré vers une image existante dans Artifact Registry à l'aide des commandes gcloud
, procédez comme suit:
- Ouvrez une fenêtre de terminal.
Exécutez la commande
gcloud
pour créer un déclencheur de compilation dans votre projet. Dans l'exemple ci-dessous, le déclencheur est configuré pour répondre aux compilations avec une correspondance de tagprod
et une correspondance d'actionINSERT
en fonction de la charge utile spécifiée comme définie par la variable de substitution,_IMAGE_TAG
.gcloud builds triggers create pubsub \ --region=REGION \ --name=TRIGGER_NAME \ --repository=projects/PROJECT_ID/locations/REGION/connections/CONNECTION_NAME/repositories/REPO_NAME \ --topic=projects/PROJECT_ID/topics/TOPIC_NAME \ --build-config=BUILD_CONFIG \ # or --inline-config=INLINE_BUILD_CONFIG --substitutions=\ '_IMAGE_TAG_="$(body.message.data.tag)",' \ '_ACTION="$(body.message.data.action)"' \ --subscription-filter='_IMAGE_TAG == "" && _ACTION == "INSERT"' \ --tag=TAG_NAME # or --branch=BRANCH_NAME
Où :
- REGION correspond à la région de votre déclencheur.
- TRIGGER_NAME correspond au nom de votre déclencheur.
- PROJECT_ID est l'ID de votre projet Cloud.
- CONNECTION_NAME est le nom de votre connexion hôte.
- REPO_NAME est le nom du dépôt.
- TOPIC_NAME correspond au nom du sujet Pub/Sub auquel vous êtes abonné.
- BUILD_CONFIG correspond au chemin d'accès à votre fichier de configuration de compilation.
- INLINE_BUILD_CONFIG est le chemin d'accès à votre fichier de configuration de compilation intégré.
- TAG_NAME est le nom de votre tag si vous souhaitez configurer votre déclencheur pour qu'il effectue une compilation sur un tag.
- BRANCH_NAME est le nom de votre branche si vous souhaitez configurer votre déclencheur pour effectuer une compilation sur une branche.
Créer un déclencheur de compilation qui répond aux événements Container Registry
Vous pouvez créer un déclencheur Pub/Sub qui répond aux événements Container Registry tels que le moment où des images sont stockées, taguées ou supprimées. Cette section explique comment créer un déclencheur Pub/Sub qui appelle une compilation lorsqu'une image correspond à un tag configuré par un filtre personnalisé. Si vous ne connaissez pas Container Registry, consultez le guide de démarrage rapide pour Container Registry pour savoir comment transférer et extraire des images avec des tags.
Console
Créer un déclencheur qui écoute le transfert d'une image dans Container Registry et les correspondances en fonction d'un nom de tag à l'aide de la console Google Cloud:
Ouvrez la page Déclencheurs :
Sélectionnez votre projet en haut de la page, puis cliquez sur Ouvrir.
Cliquez sur Créer un déclencheur.
Entrez les paramètres de déclencheur suivants :
- Nom : saisissez le nom de votre déclencheur.
Région: sélectionnez la région de votre déclencheur.
- Si le fichier de configuration de compilation associé au déclencheur spécifie un pool privé, Cloud Build utilise le pool privé pour exécuter votre compilation. Dans ce cas, la région que vous spécifiez dans votre déclencheur doit correspondre à celle dans laquelle vous avez créé le pool privé.
- Si le fichier de configuration de compilation associé au déclencheur ne spécifie pas de pool privé, Cloud Build utilise le pool par défaut pour exécuter votre compilation dans la même région que votre déclencheur.
Description (facultative) : saisissez une description du déclencheur.
Événement: sélectionnez Message Pub/Sub comme événement pour appeler votre déclencheur.
Abonnement : Sélectionnez le sujet Pub/Sub auquel vous souhaitez vous abonner comme l'événement déclencheur. Tous les sujets existants dans votre projet s'affichent dans le menu déroulant.
- Sujet Pub/Sub: sélectionnez le sujet
gcr
dans le menu déroulant ou créez-le manuellement en suivant les instructionsConfigurer les notifications Pub/Sub.
- Sujet Pub/Sub: sélectionnez le sujet
Source : sélectionnez la source à compiler lorsque le déclencheur Pub/Sub est exécuté. Vous pouvez spécifier 1re génération ou 2e génération comme source.
Dépôt : sélectionnez le dépôt de votre choix dans la liste des dépôts disponibles.
Branche ou tag : spécifiez une expression régulière à laquelle faire correspondre la valeur de la branche ou du tag. Pour en savoir plus sur la syntaxe des expressions régulières acceptables, consultez la page Syntaxe RE2.
Contrôle des commentaires : si vous avez sélectionné Demande d'extraction (application GitHub uniquement) comme événement, choisissez l'une des options suivantes pour contrôler si une compilation doit être exécutée automatiquement par le déclencheur :
Obligatoire, sauf pour les propriétaires et les collaborateurs : lorsqu'une demande d'extraction est créée ou mise à jour par un propriétaire ou un collaborateur du dépôt, les compilations sont automatiquement exécutées par le déclencheur. Si un contributeur externe lance l'action, les compilations ne seront exécutées qu'après que le propriétaire ou le collaborateur a ajouté
/gcbrun
à la demande d'extraction.Obligatoire : lorsqu'une demande d'extraction est créée ou mise à jour par un contributeur, les compilations ne sont exécutées qu'après que le propriétaire ou le collaborateur a ajouté
/gcbrun
à la demande d'extraction. Les compilations sont exécutées chaque fois qu'une modification est apportée à une demande d'extraction.Non requis : lorsqu'une demande d'extraction est créée ou mise à jour par un contributeur, les compilations sont automatiquement exécutées par des déclencheurs.
Configuration: sélectionnez le fichier de configuration de compilation (situé dans votre dépôt distant) ou créez un fichier de configuration de compilation intégré à utiliser pour votre compilation.
- Type: sélectionnez le type de configuration à utiliser pour votre compilation.
- Fichier de configuration Cloud Build (yaml or json) : utilisez un fichier de configuration de compilation pour votre configuration.
- Dockerfile: utilisez un fichier
Dockerfile
pour votre configuration. - Buildpacks: utilisez des packs de création pour votre configuration.
Emplacement: spécifiez l'emplacement de votre configuration.
- Dépôt : si votre fichier de configuration se trouve dans votre dépôt distant, indiquez l'emplacement de votre fichier de configuration de compilation, le répertoire
Dockerfile
ou le répertoire packs de création. Si votre type de configuration de compilation est un fichierDockerfile
ou un pack de création, vous devez attribuer un nom à l'image obtenue et, éventuellement, un délai avant expiration pour la compilation. Une fois le nom de l'imageDockerfile
ou du pack de création fourni, vous obtenez un aperçu de la commandedocker build
oupack
que votre compilation va exécuter. - Variables d'environnement de pack de création (facultatif): si vous avez sélectionné
buildpacks
comme type de configuration, cliquez sur Ajouter une variable d'environnement de pack pour spécifier les variables d'environnement et valeurs de votre pack de création. Pour en savoir plus sur les variables d'environnement du pack de création, consultez la section Variables d'environnement. Intégré: si vous avez sélectionné Fichier de configuration Cloud Build (yaml ou json) comme option de configuration, vous pouvez spécifier votre configuration de compilation de manière intégrée. Cliquez sur Ouvrir l'éditeur pour écrire votre fichier de configuration de compilation dans la console Google Cloud à l'aide d'une syntaxe YAML ou JSON. Cliquez sur OK pour enregistrer la configuration de compilation.
- Dépôt : si votre fichier de configuration se trouve dans votre dépôt distant, indiquez l'emplacement de votre fichier de configuration de compilation, le répertoire
- Type: sélectionnez le type de configuration à utiliser pour votre compilation.
Substitutions (Facultatif): Si vous avez choisi le fichier de configuration de compilation comme option de configuration de la compilation, vous pouvez choisir de définir des Variables de substitution spécifique à un déclencheur en utilisant ce champ.
Dans l'exemple suivant, nous souhaitons obtenir le nom du tag d'image à partir de la charge utile et de l'action associée à l'événement
gcr
. Pour ce faire, créez des variables de substitution à l'aide de liaisons de charge utile.Spécifiez les variables et valeurs suivantes:
Nom de la variable Valeur de la variable _IMAGE_TAG
$(body.message.data.tag)
_ACTION
$(body.message.data.action)
body.message
référence le PubSubMessage publié par les éditeurs et consommé par les abonnés. Pour consulter plus d'exemples de la charge utile de la notification Pub/Sub, consultez la section Exemples de notifications.Filtres (facultatif): vous pouvez créer des filtres dans un déclencheur qui déterminent si votre déclencheur exécutera une compilation en réponse à la charge utile entrante en spécifiant des filtres sur les variables de substitution. L'expression de filtre doit renvoyer la valeur
true
pour qu'une compilation s'exécute.Nous vous recommandons d'utiliser le filtrage lorsque vous configurez des déclencheurs Pub/Sub sur des sujets contenant plusieurs messages. Les filtres peuvent être utilisés pour contrôler avec précision les compilations exécutées en réponse aux messages Pub/Sub entrants. Pour en savoir plus sur les risques associés à la configuration d'un déclencheur sans filtres, consultez la section Risques associés à un déclencheur non filtré.
Dans l'exemple suivant, nous souhaitons que le déclencheur exécute une compilation si le nom de la variable de tag
_IMAGE_TAG
correspond à un nom de tag spécifique, tel queprod
. Vous pouvez spécifier l'opérateur de condition de filtre comme "==" pour une correspondance exacte. Vous pouvez également vérifier l'action associée à votre événementgcr
. Par exemple, vous pouvez spécifier_ACTION
commeINSERT
pour rechercher les données nouvellement ajoutées.Spécifiez les filtres suivants:
_IMAGE_TAG
.matches(prod
)_ACTION
.matches(INSERT
)
La syntaxe de filtrage des déclencheurs Pub/Sub utilise le CEL (Common Expression Language) pour l'évaluation des expressions. Pour en savoir plus sur le CEL, consultez le dépôt cel-spec. Pour voir plus d'exemples de syntaxe de filtrage que vous pouvez appliquer à vos déclencheurs Pub/Sub, consultez la section Filtrer les compilations.
- Cliquez sur Créer pour créer votre déclencheur de compilation.
gcloud
Créer un déclencheur de compilation qui répond aux événements Cloud Storage
Vous pouvez créer un déclencheur Pub/Sub qui répond aux événements Cloud Storage, par exemple lorsqu'un nouveau binaire est transféré vers un bucket de stockage existant. Cette section explique comment créer un déclencheur Pub/Sub qui répond avec une compilation lors du déploiement d'un nouveau binaire dans un bucket importé. Si vous ne connaissez pas Cloud Storage, consultez les guides de démarrage rapide.
Console
Pour créer un déclencheur qui écoute des événements Cloud Storage à l'aide de la console Google Cloud:
Ouvrez la page Déclencheurs :
Sélectionnez votre projet en haut de la page, puis cliquez sur Ouvrir.
Cliquez sur Créer un déclencheur.
Entrez les paramètres de déclencheur suivants :
- Nom : saisissez le nom de votre déclencheur.
Région : sélectionnez la région de votre déclencheur.
- Si le fichier de configuration de compilation associé au déclencheur spécifie un pool privé, Cloud Build l'utilise pour exécuter votre compilation. Dans ce cas, la région que vous spécifiez dans votre déclencheur doit correspondre à celle dans laquelle vous avez créé votre pool privé.
- Si le fichier de configuration de compilation associé au déclencheur ne spécifie pas de pool privé, Cloud Build utilise le pool par défaut pour exécuter votre compilation dans la même région que votre déclencheur.
Description (facultative) : saisissez une description du déclencheur.
Événement: sélectionnez Message Pub/Sub comme événement pour appeler votre déclencheur.
Abonnement : Sélectionnez le sujet Pub/Sub auquel vous souhaitez vous abonner comme l'événement déclencheur. Tous les sujets existants dans votre projet s'affichent dans le menu déroulant.
- Sujet Pub/Sub : sélectionnez le sujet
gcs
dans le menu déroulant ou créez-le manuellement en suivant les instructions de la section Configurer les notifications Pub/Sub pour Cloud Storage.
- Sujet Pub/Sub : sélectionnez le sujet
Source : sélectionnez la source à compiler lorsque le déclencheur Pub/Sub est exécuté. Vous pouvez spécifier 1re génération ou 2e génération comme source.
Dépôt : sélectionnez le dépôt de votre choix dans la liste des dépôts disponibles.
Branche ou tag : spécifiez une expression régulière à laquelle faire correspondre la valeur de la branche ou du tag. Pour en savoir plus sur la syntaxe des expressions régulières acceptables, consultez la page Syntaxe RE2.
Contrôle des commentaires : si vous avez sélectionné Demande d'extraction (application GitHub uniquement) comme événement, choisissez l'une des options suivantes pour contrôler si une compilation doit être exécutée automatiquement par le déclencheur :
Obligatoire, sauf pour les propriétaires et les collaborateurs : lorsqu'une demande d'extraction est créée ou mise à jour par un propriétaire ou un collaborateur du dépôt, les compilations sont automatiquement exécutées par le déclencheur. Si un contributeur externe lance l'action, les compilations ne seront exécutées qu'après que le propriétaire ou le collaborateur a ajouté
/gcbrun
à la demande d'extraction.Obligatoire : lorsqu'une demande d'extraction est créée ou mise à jour par un contributeur, les compilations ne sont exécutées qu'après que le propriétaire ou le collaborateur a ajouté
/gcbrun
à la demande d'extraction. Les compilations sont exécutées chaque fois qu'une modification est apportée à une demande d'extraction.Non requis : lorsqu'une demande d'extraction est créée ou mise à jour par un contributeur, les compilations sont automatiquement exécutées par des déclencheurs.
Configuration: sélectionnez le fichier de configuration de compilation (situé dans votre dépôt distant) ou créez un fichier de configuration de compilation intégré à utiliser pour votre compilation.
- Type: sélectionnez le type de configuration à utiliser pour votre compilation.
- Fichier de configuration Cloud Build (yaml or json) : utilisez un fichier de configuration de compilation pour votre configuration.
- Dockerfile: utilisez un fichier
Dockerfile
pour votre configuration. - Buildpacks: utilisez des packs de création pour votre configuration.
Emplacement: spécifiez l'emplacement de votre configuration.
- Dépôt : si votre fichier de configuration se trouve dans votre dépôt distant, indiquez l'emplacement de votre fichier de configuration de compilation, le répertoire
Dockerfile
ou le répertoire packs de création. Si votre type de configuration de compilation est un fichierDockerfile
ou un pack de création, vous devez attribuer un nom à l'image obtenue et, éventuellement, un délai avant expiration pour la compilation. Une fois le nom de l'imageDockerfile
ou du pack de création fourni, vous obtenez un aperçu de la commandedocker build
oupack
que votre compilation va exécuter. - Variables d'environnement de pack de création (facultatif): si vous avez sélectionné
buildpacks
comme type de configuration, cliquez sur Ajouter une variable d'environnement de pack pour spécifier les variables d'environnement et valeurs de votre pack de création. Pour en savoir plus sur les variables d'environnement du pack de création, consultez la section Variables d'environnement. Intégré: si vous avez sélectionné Fichier de configuration Cloud Build (yaml ou json) comme option de configuration, vous pouvez spécifier votre configuration de compilation de manière intégrée. Cliquez sur Ouvrir l'éditeur pour écrire votre fichier de configuration de compilation dans la console Google Cloud à l'aide d'une syntaxe YAML ou JSON. Cliquez sur OK pour enregistrer la configuration de compilation.
- Dépôt : si votre fichier de configuration se trouve dans votre dépôt distant, indiquez l'emplacement de votre fichier de configuration de compilation, le répertoire
- Type: sélectionnez le type de configuration à utiliser pour votre compilation.
Substitutions (Facultatif): Si vous avez choisi le fichier de configuration de compilation comme option de configuration de la compilation, vous pouvez choisir de définir des Variables de substitution spécifique à un déclencheur en utilisant ce champ.
Dans cet exemple, nous souhaitons surveiller le déploiement d'un nouveau binaire lorsqu'il est importé dans un bucket. Pour obtenir ces données, nous pouvons créer des variables de substitution à l'aide de liaisons de charge utile.
Spécifiez les variables et valeurs suivantes:
Nom de la variable Valeur de la variable _EVENT_TYPE
$(body.message.attributes.eventType)
_BUCKET_ID
$(body.message.attributes.bucketId)
_OBJECT_ID
$(body.message.attributes.objectId)
body.message
référence le PubSubMessage publié par les éditeurs et consommé par les abonnés. Pour consulter plus d'exemples de la charge utile de la notification Pub/Sub, consultez la section Exemples de notifications.Filtres (facultatif): vous pouvez créer des filtres dans un déclencheur qui déterminent si votre déclencheur exécutera une compilation en réponse à la charge utile entrante en spécifiant des filtres sur les variables de substitution. L'expression de filtre doit renvoyer la valeur
true
pour qu'une compilation s'exécute.Nous vous recommandons d'utiliser le filtrage lorsque vous configurez des déclencheurs Pub/Sub sur des sujets contenant plusieurs messages. Les filtres peuvent être utilisés pour contrôler avec précision les compilations exécutées en réponse aux messages Pub/Sub entrants. Pour en savoir plus sur les risques associés à la configuration d'un déclencheur sans filtres, consultez la section Risques associés à un déclencheur non filtré.
Comme nous voulons que le déclencheur exécute une compilation si le nouveau binaire a été déployé dans un bucket spécifique, nous pouvons utiliser l'opérateur "==" pour rechercher des correspondances exactes. Vous pouvez également utiliser le mot clé "correspondances" si vous souhaitez rechercher des correspondances par expression régulière.
Spécifiez les filtres suivants:
_EVENT_TYPE
==OBJECT_FINALIZE
_OBJECT_ID
correspond à^<object-id>$
_BUCKET_ID
correspond à^<bucket-id>$
- Cliquez sur Créer pour créer votre déclencheur de compilation. .
gcloud
Risques associés à un déclencheur non filtré
Si vous n'avez pas configuré de filtres sur votre déclencheur Pub/Sub, celui-ci peut appeler un nombre infini de compilations si votre déclencheur modifie un artefact ou un objet qui publie involontairement un nouveau message dans le sujet qu'il écoute. Par exemple, votre déclencheur peut appeler un nombre infini de compilations si votre déclencheur:
- Pointe vers un sujet
gcr
. - Crée une image ou un tag dans
gcr
. - Pointe vers un sujet
gcs
pour un objet spécifique de votre bucket et modifie cet objet.
Si vous rencontrez une boucle infinie, vous pouvez supprimer votre déclencheur ou le mettre à jour pour qu'il pointe vers un sujet distinct afin d'éviter que des frais supplémentaires ne soient facturés pour chaque compilation que vous appelez.
Étape suivante
- Découvrez comment démarrer des compilations manuellement à l'aide des commandes
gcloud
ou de l'API Cloud Build. - Découvrez comment créer et gérer des déclencheurs.
- Découvrez comment afficher les résultats de la compilation.
- Découvrez comment résoudre les erreurs de compilation.