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 où envoyer les journaux de compilation
Vous pouvez configurer Cloud Build pour qu'il envoie les journaux de compilation à un bucket dans Cloud Storage, un bucket dans Cloud Logging ou les deux.
Si vous souhaitez contrôler la durée de conservation de vos journaux de compilation stockés, envoyez-les à Cloud Logging. Cloud Logging propose également plus d'options pour rechercher des journaux de compilation spécifiques dans un bucket.
Dans certains cas, il existe un délai entre le moment où un journal de compilation est généré et celui où Logging le reçoit. L'envoi de vos journaux de compilation dans un bucket Cloud Storage peut réduire cette latence.
Cloud Storage et Logging vous permettent de stocker des journaux dans un bucket par défaut créé par Google ou dans un bucket personnalisé créé par l'utilisateur. Les buckets par défaut vous permettent d'afficher les journaux stockés dans le bucket, mais vous ne pouvez rien y modifier. Si vous avez besoin d'exercer un contrôle total sur le bucket que vous utilisez pour le stockage des journaux de compilation, envoyez vos journaux dans un bucket créé par l'utilisateur.
Stocker les journaux de compilation dans des buckets par défaut
Cloud Logging et Cloud Storage disposent tous deux de buckets par défaut dans lesquels vous pouvez stocker vos journaux de compilation. Ces buckets sont créés et détenus par Google. Ils peuvent recevoir des journaux provenant de plusieurs régions.
Pour envoyer vos journaux de compilation à l'un de ces buckets, configurez LoggingMode
de votre fichier de configuration de compilation avec l'une des valeurs suivantes:
GCS_ONLY
: les journaux sont stockés dans le bucket Cloud Storage par défaut.CLOUD_LOGGING_ONLY
: les journaux sont stockés dans le bucket Logging par défaut.LEGACY
: les journaux sont stockés dans les deux buckets par défaut.
Le bucket de journalisation par défaut est associé à une stratégie de conservation de 30 jours pour les journaux stockés. Pour définir une règle de conservation personnalisée pour les journaux de compilation stockés dans la journalisation, stockez-les dans un bucket personnalisé.
Le bucket Cloud Storage par défaut ne dispose d'aucune règle de conservation.
Stocker les journaux de compilation dans un bucket Cloud Storage appartenant à l'utilisateur et spécifique à la région
Si vous envoyez des journaux de compilation au bucket Cloud Storage par défaut, Cloud Build les stocke dans une région spécifiée par Google, qui peut être différente de l'emplacement où vous exécutez une compilation. Toutefois, vous pouvez également configurer votre compilation afin que Cloud Build envoie les journaux de compilation à un bucket Cloud Storage appartenant à l'utilisateur dans la même région que celle où vous exécutez votre compilation. Cette configuration vous permet de mieux contrôler l'emplacement des données de journal de compilation, ce qui peut vous aider à respecter les exigences de résidence des données.
Accorder des autorisations IAM:
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, ce compte de service dispose par défaut des autorisations IAM nécessaires. Aucune autorisation supplémentaire n'est requise. Sinon, procédez comme suit :
Pour obtenir les autorisations nécessaires pour stocker les journaux de compilation dans un bucket appartenant à l'utilisateur et spécifique à la région, demandez à votre administrateur de vous accorder le rôle IAM Administrateur de l'espace de stockage (roles/storage.admin
) sur le compte de service utilisé pour votre compilation.
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.
Configurez le bucket Cloud Storage spécifique à la région :
Dans votre fichier de configuration de compilation, ajoutez l'option
defaultLogsBucketBehavior
et définissez sa valeur surREGIONAL_USER_OWNED_BUCKET
:steps: - name: 'gcr.io/cloud-builders/docker' args: [ 'build', '-t', 'us-central1-docker.pkg.dev/myproject/myrepo/myimage', '.' ] options: defaultLogsBucketBehavior: REGIONAL_USER_OWNED_BUCKET
{ "steps": [ { "name": "gcr.io/cloud-builders/docker", "args": [ "build", "-t", "us-central1-docker.pkg.dev/myproject/myrepo/myimage", "." ] } ], "options": { "defaultLogsBucketBehavior": "REGIONAL_USER_OWNED_BUCKET" } }
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.
Lorsque vous exécutez votre compilation, Cloud Build crée le nouveau bucket dans la région où vous exécutez votre compilation, puis stocke les journaux de compilation dans ce bucket. Les builds suivants dans le même projet et la même région utiliseront le bucket existant tant que
REGIONAL_USER_OWNED_BUCKET
est actif. Ce bucket appartient à l'utilisateur. Vous pouvez donc le configurer comme s'il s'agissait d'un bucket créé par l'utilisateur.
Si vous définissez l'option REGIONAL_USER_OWNED_BUCKET
, puis créez des compilations dans plusieurs régions, Cloud Build crée plusieurs buckets pour vos journaux de compilation.
Les buckets Cloud Storage par défaut spécifiques à une région ne sont associés à aucune règle de conservation. Toutefois, vous pouvez automatiser la suppression des journaux de compilation de votre bucket en configurant une règle de cycle de vie des objets.
Stocker des journaux de compilation dans des buckets créés par l'utilisateur
Les buckets créés par l'utilisateur vous permettent de mieux gérer et configurer vos buckets de journaux.
Stocker les journaux de compilation dans un bucket Cloud Logging créé par l'utilisateur
Les buckets de journalisation créés par l'utilisateur vous permettent d'ajuster la période de conservation des journaux de compilation stockés. Pour stocker vos journaux de compilation dans un bucket créé par l'utilisateur dans Logging, procédez comme suit:
Accorder des autorisations IAM:
Pour obtenir les autorisations nécessaires pour stocker les journaux de compilation dans un bucket Cloud Logging créé par l'utilisateur, demandez à votre administrateur de vous accorder le rôle IAM Rédacteur de la configuration des journaux (roles/logging.configWriter
) sur votre projet.
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.
Configurez le bucket de journalisation :
Créez un bucket et définissez une valeur pour le champ Période de conservation.
Créez un récepteur pour acheminer vos journaux de compilation vers votre nouveau bucket:
Saisissez les éléments suivants pour le filtre d'inclusion de compilation de votre récepteur:
logName = "projects/
PROJECT_ID /logs/cloudbuild"Remplacez PROJECT-ID par l'ID de votre projet Google Cloud.
(Facultatif) Pour empêcher vos journaux d'être envoyés au bucket de journalisation par défaut, suivez l'exemple de la section Arrêter le stockage des entrées de journal dans des buckets de journaux.
Stocker les journaux de compilation dans un bucket Cloud Storage créé par l'utilisateur
Pour stocker vos journaux de compilation dans un bucket Cloud Storage créé par l'utilisateur, procédez comme suit:
Accorder des autorisations IAM:
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. Sinon, procédez comme suit :
Pour obtenir les autorisations nécessaires pour stocker les journaux de compilation dans un bucket Cloud Storage créé par l'utilisateur, demandez à votre administrateur de vous accorder le rôle IAM Administrateur Storage (roles/storage.admin
) sur le compte de service utilisé pour votre compilation.
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.
Configurez le bucket Cloud Storage :
Dans votre projet Google Cloud, créez un bucket Cloud Storage sans règle de conservation définie pour stocker vos journaux de compilation.
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
:steps: - name: 'gcr.io/cloud-builders/docker' args: [ 'build', '-t', 'us-east1-docker.pkg.dev/myproject/myimage', '.' ] logsBucket: 'gs://mylogsbucket' options: logging: GCS_ONLY
{ "steps": [ { "name": "gcr.io/cloud-builders/docker", "args": [ "build", "-t", "us-east1-docker.pkg.dev/myproject/myimage", "." ] } ], "logsBucket": "gs://mylogsbucket", "options": { "logging": "GCS_ONLY" } }
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.
Priorité entre les paramètres de journaux
Si vous définissez un bucket Cloud Storage créé par l'utilisateur dans logsBucket
, Cloud Build envoie vos journaux de compilation dans le bucket créé par l'utilisateur au lieu du bucket Cloud Storage par défaut.
Si vous ajoutez l'option defaultLogsBucketBehavior
à un fichier de configuration de compilation existant et que vous avez déjà configuré les options logging
ou logsBucket
, nous vous recommandons de supprimer ces paramètres pour éviter les conflits entre les paramètres. Plus précisément, defaultLogsBucketBehavior
ne fonctionnera pas si vous avez configuré les éléments suivants:
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 fichier de configuration de compilation, Cloud Build définit logging: LEGACY
et stocke les journaux de compilation dans le bucket Cloud Storage par défaut. Définir defaultLogsBucketBehavior
sur REGIONAL_USER_OWNED_BUCKET
remplace logging: LEGACY
.
Afficher les journaux de compilation
Pour afficher les journaux de compilation, procédez comme suit:
Accorder des autorisations IAM:
Pour obtenir les autorisations nécessaires pour afficher les journaux de compilation dans Cloud Storage ou Logging, demandez à votre administrateur de vous accorder les rôles IAM suivants sur le compte de service utilisé pour votre compilation:
-
Afficher les journaux de compilation dans un bucket Cloud Storage créé ou détenu par l'utilisateur :
-
Lecteur des objets de l'espace de stockage (
roles/storage.objectViewer
) : les comptes principaux qui souhaitent consulter les journaux de compilation -
Accesseur de vues de journaux (
roles/logging.viewAccessor
) : les principaux qui souhaitent afficher les journaux de compilation
-
Lecteur des objets de l'espace de stockage (
-
Afficher les journaux de compilation dans le bucket Cloud Storage par défaut :
Lecteur (
roles/viewer
) : projet sur lequel la compilation est configurée -
Afficher les journaux de compilation dans la journalisation :
Lecteur de journaux (
roles/logging.viewer
) : les principaux qui souhaitent afficher les journaux de compilation
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.
Afficher les journaux de compilation dans Google Cloud:
Ouvrez la page Cloud Build dans la console Google Cloud.
Sélectionnez votre projet et cliquez sur Ouvrir.
Dans le menu déroulant Région, sélectionnez la région pour votre build.
Sur la page Historique de compilation, sélectionnez une compilation spécifique.
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 sélectionnez une étape spécifique de compilation pour consulter son journal.
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.
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
Afficher les journaux de compilation dans GitHub et GitHub Enterprise:
Si vous créez un déclencheur GitHub ou GitHub Enterprise et que vous spécifiez --include-logs-with-status
comme option, vous pouvez afficher vos journaux de compilation dans GitHub et GitHub Enterprise.
Pour afficher les journaux de compilation dans GitHub et GitHub Enterprise, procédez comme suit:
Accédez au dépôt associé à votre déclencheur.
Accédez à votre liste de commits.
Recherchez la ligne du commit pour lequel vous souhaitez afficher les journaux de compilation.
Cliquez sur l'icône de résultat dans la ligne de votre commit.
Une liste des vérifications associées à votre commit s'affiche.
Cliquez sur Détails pour la ligne pour laquelle vous souhaitez afficher les journaux de compilation.
La page Récapitulatif associée à votre commit s'affiche. Si vous avez créé un déclencheur à l'aide de l'indicateur
--include-logs-with-status
, vos journaux de compilation s'affichent dans la section Details (Détails) de la page.
Supprimer des journaux de compilation et des buckets
Pour obtenir les autorisations nécessaires pour supprimer les journaux de compilation et les buckets dans Cloud Storage, demandez à votre administrateur de vous accorder les rôles IAM suivants sur le compte de service utilisé pour votre compilation:
-
Supprimez les journaux de compilation dans un bucket Cloud Storage créé ou détenu par l'utilisateur :
Administrateur de l'espace de stockage (
roles/storage.admin
) : l'utilisateur ou le compte de service qui supprime les journaux de compilation -
Supprimer un bucket Cloud Storage créé ou détenu par un utilisateur :
Administrateur de l'espace de stockage (
roles/storage.admin
) : l'utilisateur ou le compte de service qui supprime les buckets -
Supprimez un bucket de journalisation créé par l'utilisateur :
Rédacteur de configuration des journaux (
roles/logging.configWriter
) : votre projet
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.
Pour supprimer des journaux de compilation dans un bucket Cloud Storage créé ou détenu par l'utilisateur, suivez les instructions de la section Supprimer des objets dans la documentation Cloud Storage.
Pour supprimer un bucket Cloud Storage créé ou détenu par l'utilisateur, suivez les instructions de la section Supprimer des buckets dans la documentation Cloud Storage.
Pour supprimer un bucket de journalisation créé par l'utilisateur, suivez les instructions de la section Supprimer un bucket de la documentation sur la journalisation.
Étape suivante
- Découvrez les journaux d'audit créés par Cloud Build.
- Découvrez comment afficher les résultats de la compilation.
- Apprenez-en plus sur les autorisations IAM pour Cloud Build.