Stocker et gérer les journaux de compilation

Lorsque vous exécutez des compilations, Cloud Build collecte et stocke vos journaux de compilation. Cette page explique comment stocker, afficher et supprimer des journaux de compilation.

Choisir l'emplacement de stockage des journaux de compilation

Vous pouvez configurer Cloud Build pour stocker les journaux de compilation dans Cloud Logging ou dans Cloud Storage en incluant le champ logging dans votre fichier de configuration Cloud Build. Si vous ne spécifiez pas de champ logging dans votre fichier de configuration de compilation, Cloud Build stocke les journaux de compilation à la fois dans Logging et Cloud Storage.

Les étapes suivantes ne stockent les journaux de compilation que dans Logging:

  1. Dans votre fichier de configuration de compilation, définissez la valeur logging sur CLOUD_LOGGING_ONLY:

    YAML

    steps:
    - name: 'gcr.io/cloud-builders/docker'
      args: ['build', '-t', 'us-east1-docker.pkg.dev/myproject/myimage', '.']
    options:
      logging: CLOUD_LOGGING_ONLY
    

    JSON

    {
      "steps": [
      {
        "name": "gcr.io/cloud-builders/docker",
        "args": [
          "build",
          "-t",
          "us-east1-docker.pkg.dev/myproject/myimage",
          "."
        ]
      }
      ],
      "options": {
        "logging": "CLOUD_LOGGING_ONLY"
      }
    }
    
  2. Utilisez le fichier de configuration de compilation pour démarrer une compilation à l'aide de la ligne de commande, de l'API ou des déclencheurs.

Stocker les journaux de compilation dans le bucket par défaut créé par Google

Par défaut, Cloud Build stocke vos journaux de compilation dans un bucket Cloud Storage créé par Google. Vous pouvez afficher les journaux de compilation stockés dans le bucket Cloud Storage créé par Google, mais vous ne pouvez pas y apporter d'autres modifications. Si vous avez besoin d'exercer un contrôle total sur votre bucket de journaux, stockez-les dans un bucket Cloud Storage créé par l'utilisateur.

Stocker des journaux de compilation dans un bucket créé par l'utilisateur

Autorisations IAM :

Pour stocker les journaux de compilation dans votre propre bucket Cloud Storage, vous devez d'abord accorder les autorisations IAM nécessaires au compte de service que vous utilisez pour la compilation :

  • Si votre bucket Cloud Storage et Cloud Build se trouvent dans le même projet Google Cloud et que vous utilisez l'ancien compte de service Cloud Build, il dispose par défaut des autorisations IAM nécessaires. Aucune autorisation supplémentaire n'est requise.

  • Dans tous les autres cas, attribuez le rôle Administrateur Storage au compte de service que vous que vous utilisez pour la compilation:

    1. Ouvrez la page "IAM" du projet dans lequel se trouve votre bucket Cloud Storage :

      Ouvrir la page IAM

    2. Cliquez sur Accorder l'accès.

    3. Saisissez l'adresse e-mail du compte de service.

    4. Sélectionnez Cloud Storage > Administrateur de l'espace de stockage.

    5. Cliquez sur Enregistrer.

Pour spécifier un bucket Cloud Storage où stocker les journaux de compilation, suivez les étapes suivantes :

  1. Dans votre projet Google Cloud, Créer un bucket Cloud Storage sans règle de conservation définie pour stocker vos journaux de compilation.

  2. Dans votre fichier de configuration de compilation, ajoutez un champ logsBucket pointant vers le bucket Cloud Storage que vous avez créé pour stocker les journaux de compilation. Voici un exemple de fichier de configuration de compilation contenant des instructions pour créer une image de conteneur et stocker les journaux de compilation dans le bucket nommé mylogsbucket :

    YAML

        steps:
        - name: 'gcr.io/cloud-builders/docker'
          args: [ 'build', '-t', 'us-east1-docker.pkg.dev/myproject/myimage', '.' ]
        logsBucket: 'gs://mylogsbucket'
        options:
          logging: GCS_ONLY
    

    JSON

        {
          "steps": [
           {
             "name": "gcr.io/cloud-builders/docker",
             "args": [
               "build",
               "-t",
               "us-east1-docker.pkg.dev/myproject/myimage",
               "."
             ]
           }
           ],
           "logsBucket": "gs://mylogsbucket",
           "options": {
             "logging": "GCS_ONLY"
           }
        }
    
  3. Utilisez le fichier de configuration de compilation pour démarrer une compilation à l'aide de la ligne de commande, de l'API ou des déclencheurs.

Une fois la compilation terminée, Cloud Build stockera les journaux dans le bucket Cloud Storage que vous avez spécifié dans le fichier de configuration de compilation.

Stocker les journaux de compilation dans un bucket appartenant à l'utilisateur et régionalisé

Par défaut, Cloud Build stocke les journaux de compilation dans une région spécifiée par Google, qui peut être différente de l'emplacement où vous exécutez une compilation. L'option defaultLogsBucketBehavior vous permet de configurer Cloud Build afin qu'il utilise un bucket de journaux par défaut dans votre propre projet et dans la même région que la compilation. Cette configuration vous permet de mieux contrôler l'emplacement de vos données de journaux, ce qui peut vous aider à respecter les exigences de résidence des données.

Le stockage des journaux dans votre propre projet entraîne des frais. Pour en savoir plus sur les tarifs, consultez la page Tarifs de Cloud Storage.

Configurez Cloud Build pour utiliser des journaux régionalisés appartenant à l'utilisateur:

  1. Accordez les autorisations IAM nécessaires.

    • Si vous utilisez l'ancien compte de service Cloud Build, il dispose par défaut des autorisations IAM nécessaires. Aucune autorisation supplémentaire n'est requise.

    • Pour les autres comptes de service, attribuez le rôle Storage Admin au compte de service que vous utilisez pour la compilation. Pour savoir comment attribuer un rôle à un compte de service, consultez la section Attribuer des rôles au projet.

  2. Dans votre configuration de compilation, ajoutez l'option defaultLogsBucketBehavior et définissez sa valeur sur REGIONAL_USER_OWNED_BUCKET :

    YAML

    steps:
    - name: 'gcr.io/cloud-builders/docker'
      args: [ 'build', '-t', 'us-central1-docker.pkg.dev/myproject/myrepo/myimage', '.' ]
    options:
      defaultLogsBucketBehavior: REGIONAL_USER_OWNED_BUCKET
    

    JSON

    {
      "steps": [
        {
          "name": "gcr.io/cloud-builders/docker",
          "args": [
            "build",
            "-t",
            "us-central1-docker.pkg.dev/myproject/myrepo/myimage",
            "."
          ]
        }
        ],
        "options": {
          "defaultLogsBucketBehavior": "REGIONAL_USER_OWNED_BUCKET"
        }
    }
    
  3. Utilisez le fichier de configuration de compilation pour démarrer une compilation à l'aide de la ligne de commande, de l'API ou de déclencheurs.

    Lorsque vous exécutez votre compilation, Cloud Build crée un nouveau bucket de journaux dans la région où vous exécutez votre compilation, puis y stocke les journaux de compilation. Les builds suivants dans le même projet et la même région utiliseront le bucket existant par défaut.

Si vous définissez l'option defaultLogsBucketBehavior, puis créez des compilations dans plusieurs régions, Cloud Build crée plusieurs buckets pour vos journaux de compilation.

Les journaux de compilation régionalisés stockés dans votre propre projet ne sont associés à aucune règle de conservation. Ce paramètre est immuable.

Priorité entre les paramètres des journaux

Si vous ajoutez l'option defaultLogsBucketBehavior à un fichier de configuration de compilation existant et que vous avez déjà configuré des options logging ou logsBucket, nous vous recommandons de supprimer ces paramètres pour éviter tout conflit entre les paramètres.

Plus précisément, defaultLogsBucketBehavior ne fonctionnera pas si vous avez configuré:

  • logging: CLOUD_LOGGING_ONLY pour stocker vos journaux de compilation dans Cloud Logging.
  • logging: NONE pour désactiver la journalisation

Lorsque vous exécutez une compilation sans options de journalisation définies dans votre configuration de compilation, Cloud Build définit logging: LEGACY et stocke les journaux dans le bucket Cloud Storage par défaut créé par Google. Si vous ajoutez defaultLogsBucketBehavior: REGIONAL_USER_OWNED_BUCKET, cette option remplace logging: LEGACY.

Afficher les journaux de compilation

Autorisations IAM :

  • Si vos journaux de compilation se trouvent dans Logging, attribuez le rôle Lecteur de journaux au projet sur lequel la compilation est configurée pour les comptes principaux qui souhaitent afficher les journaux de compilation:

    1. Ouvrez la page "IAM" :

      Ouvrir la page IAM

    2. Sélectionnez votre projet et cliquez sur Ouvrir.

    3. Dans le tableau des autorisations, recherchez l'ID de l'adresse e-mail du compte principal et cliquez sur l'icône en forme de crayon.

    4. Sélectionnez le rôle Logging > Lecteur de journaux.

    5. Cliquez sur Enregistrer.

  • Si vos journaux de compilation se trouvent dans le bucket Cloud Storage par défaut créé par Google, accordez le rôle Lecteur de projet au projet sur lequel la compilation est configurée pour les comptes principaux qui souhaitent afficher les journaux de compilation :

    1. Ouvrez la page "IAM" :

      Ouvrir la page IAM

    2. Sélectionnez votre projet et cliquez sur Ouvrir.

    3. Dans le tableau des autorisations, recherchez l'ID de l'adresse e-mail du compte principal et cliquez sur l'icône en forme de crayon.

    4. Sélectionnez le rôle Projet > Lecteur.

    5. Cliquez sur Enregistrer.

    Si vos journaux de compilation se trouvent dans un bucket Cloud Storage créé ou appartenant à l'utilisateur, accordez Lecteur des objets Storage aux comptes principaux qui souhaitent consulter les journaux de compilation:

    1. Ouvrez la page "IAM" :

      Ouvrir la page IAM

    2. Sélectionnez votre projet et cliquez sur Ouvrir.

    3. Dans le tableau des autorisations, recherchez l'ID de l'adresse e-mail du compte principal et cliquez sur l'icône en forme de crayon.

    4. Sélectionnez le rôle Cloud Storage > Lecteur des objets de l'espace de stockage.

    5. Cliquez sur Enregistrer.

Pour afficher les journaux de compilation dans Cloud Build :

Console

  1. Ouvrez la page Cloud Build dans la console Google Cloud.

    Ouvrir la page Cloud Build

  2. Sélectionnez votre projet et cliquez sur Ouvrir.

  3. Dans le menu déroulant Région, sélectionnez la région de votre build.

  4. Sur la page Historique de compilation, cliquez sur une compilation spécifique.

  5. Sur la page Informations sur le build, sous Steps (Étapes), cliquez sur Build Summary (Résumé de la compilation) pour afficher tout le journal de la compilation ou cliquez sur une étape spécifique de compilation pour consulter son journal.

    Capture d'écran des journaux de compilation sur la page "Informations sur le build".

  6. Si vos journaux sont stockés dans Logging, dans le panneau Journaux de compilation, cliquez sur l'icône pour les afficher dans l'explorateur de journaux.

    Capture d'écran des journaux de compilation dans l'explorateur de journaux.

gcloud

Exécutez la commande gcloud builds log, où build-id est l'ID de la compilation pour laquelle vous souhaitez obtenir des journaux de compilation. L'ID de compilation s'affiche à la fin du processus lorsqu'une demande de compilation est envoyée à l'aide de la commande gcloud builds submit, ou dans la colonne ID lorsque vous exécutez la commande gcloud builds list.

gcloud builds log build-id

Pour afficher les journaux de compilation dans GitHub et GitHub Enterprise:

Si vous créez un déclencheur GitHub ou GitHub Enterprise et que vous a spécifié --include-logs-with-status comme option, vous pouvez afficher vos journaux de compilation dans GitHub et GitHub Entreprise.

Pour afficher les journaux de compilation dans GitHub et GitHub Enterprise :

  1. Accédez au dépôt associé à votre déclencheur.

  2. Accédez à votre liste de commits.

  3. Recherchez la ligne du commit pour lequel vous souhaitez afficher les journaux de compilation.

  4. Cliquez sur l'icône de résultat sur la ligne de votre commit.

    La liste des vérifications associées à votre commit s'affiche.

  5. Cliquez sur Details (Détails) pour la ligne sur laquelle vous souhaitez afficher la compilation. les journaux.

    La page Summary (Résumé) associée à votre commit s'affiche. Si vous avez créé un déclencheur à l'aide de la méthode l'indicateur --include-logs-with-status, vous verrez Vos journaux de compilation affichés dans la section Détails de la page.

Supprimer des journaux de compilation

Vous ne pouvez pas supprimer les journaux de compilation dans le bucket de journaux créé par Google.

Pour supprimer des journaux de compilation dans un bucket de journaux créé par l'utilisateur, procédez comme suit :

  1. Attribuez le rôle Administrateur des objets de l'espace de stockage à l'utilisateur ou au compte de service qui supprime les journaux.

  2. Supprimez les journaux de compilation en suivant les instructions de suppression des objets Cloud Storage de la section Supprimer des objets.

Pour supprimer le bucket de journaux créé par l'utilisateur, procédez comme suit :

  1. Attribuez le rôle Administrateur de l'espace de stockage à l'utilisateur ou au compte de service qui supprime le bucket de journaux.

  2. Supprimez le bucket de journaux en suivant les instructions de suppression de bucket de la section Supprimer des buckets.

Étape suivante