Automatiser les compilations en réponse aux événements Pub/Sub

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.

    Enable the 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:

  1. Ouvrez la page Déclencheurs :

    Ouvrir la page Déclencheurs

  2. Sélectionnez votre projet en haut de la page, puis cliquez sur Ouvrir.

  3. Cliquez sur Créer un déclencheur.

  4. 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.

    • 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 fichier Dockerfile 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'image Dockerfile ou du pack de création fourni, vous obtenez un aperçu de la commande docker build ou pack 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.

    • 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.

  1. 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:

  1. Ouvrez une fenêtre de terminal.
  2. 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 tag prod et une correspondance d'action INSERT 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:

  1. Ouvrez la page Déclencheurs :

    Ouvrir la page Déclencheurs

  2. Sélectionnez votre projet en haut de la page, puis cliquez sur Ouvrir.

  3. Cliquez sur Créer un déclencheur.

  4. 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.

    • 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 fichier Dockerfile 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'image Dockerfile ou du pack de création fourni, vous obtenez un aperçu de la commande docker build ou pack 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.

    • 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 que prod. 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énement gcr. Par exemple, vous pouvez spécifier _ACTION comme INSERT 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.

  1. 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:

  1. Ouvrez la page Déclencheurs :

    Ouvrir la page Déclencheurs

  2. Sélectionnez votre projet en haut de la page, puis cliquez sur Ouvrir.

  3. Cliquez sur Créer un déclencheur.

  4. 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.

    • 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 fichier Dockerfile 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'image Dockerfile ou du pack de création fourni, vous obtenez un aperçu de la commande docker build ou pack 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.

    • 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>$
  1. Cliquez sur Créer pour créer votre déclencheur de compilation.
  2. .

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