Options de stockage des journaux de compilation

Lorsque vous exécutez des builds, Cloud Build collecte et stocke vos journaux de compilation dans un bucket de journaux. En fonction des paramètres du fichier de configuration de compilation, vos journaux de compilation sont stockés dans des buckets Cloud Logging, des buckets Cloud Storage ou les deux. Vous pouvez également configurer le type de bucket Logging ou Cloud Storage qui contient vos journaux. L'emplacement et le type de votre bucket ont une incidence sur votre capacité à analyser les journaux de compilation et sur le niveau de contrôle dont vous disposez sur les paramètres du bucket.

Présentation

Lorsque vous configurez votre fichier de configuration de compilation, tenez compte des points suivants :

  • Si vous souhaitez contrôler la durée de conservation de vos journaux de compilation stockés, envoyez-les à Logging. La visionneuse de journaux de Logging offre également plus d'options pour rechercher des journaux de compilation spécifiques dans un bucket par rapport à Cloud Storage. Toutefois, lorsque vous utilisez Logging, il peut s'écouler un certain temps entre la génération d'un journal de compilation et sa réception par Logging.

  • Si vous souhaitez réduire la latence entre la génération d'un journal de compilation et sa disponibilité dans Cloud Storage, envoyez vos journaux de compilation vers un bucket dans Cloud Storage.

La propriété de votre bucket affecte également la façon dont vous pouvez interagir avec les journaux de compilation stockés. Par exemple, un bucket appartenant à l'utilisateur vous permet de configurer les paramètres de votre bucket, tandis que les buckets appartenant à Google Cloudsont créés par Google Cloudet ne peuvent pas être modifiés par les utilisateurs. Logging et Cloud Storage proposent plusieurs options pour configurer le type de bucket qui reçoit vos journaux de compilation.

Emplacement des buckets

Configurez le champ logging dans votre fichier de configuration de compilation pour déterminer où vos journaux de compilation sont envoyés :

  • GCS_ONLY : les journaux de compilation sont envoyés aux buckets Cloud Storage.
  • CLOUD_LOGGING_ONLY : les journaux de compilation sont envoyés aux buckets Logging.
  • LEGACY : les journaux de compilation sont envoyés aux buckets des deux emplacements. Si logging n'est pas défini, Cloud Build utilise cette valeur.
  • NONE : les journaux de compilation ne sont pas stockés.

Si vous envoyez vos journaux de compilation à Logging, consultez Configuration du routage Cloud Logging pour en savoir plus sur les options des buckets Logging. Si vous envoyez vos journaux de compilation à Cloud Storage, consultez la section suivante pour en savoir plus sur les buckets Cloud Storage disponibles. La section Considérations sur la propriété des buckets décrit les avantages et les considérations liés aux buckets en fonction de leur propriété, quel que soit leur emplacement.

Options de bucket dans Cloud Storage

Si vos journaux de compilation sont envoyés à Cloud Storage, Cloud Build évalue les champs logsBucket et defaultLogsBucketBehavior de votre fichier de configuration de compilation pour déterminer le type de bucket Cloud Storage qui reçoit les journaux de compilation.

Le champ logsBucket peut avoir n'importe quel type de bucket. Si logsBucket est défini, les journaux sont toujours envoyés à ce bucket dans Cloud Storage, quelle que soit la valeur de defaultLogsBucketBehavior. Si logsBucket n'est pas défini, la valeur de defaultLogsBucketBehavior est utilisée comme suit :

  • REGIONAL_USER_OWNED_BUCKET : les journaux de compilation sont envoyés au bucket créé par Cloud Build et appartenant à l'utilisateur dans Cloud Storage. Ce bucket se trouve dans le projet de l'utilisateur et utilise la même région que la compilation.
  • LEGACY_BUCKET : les journaux de compilation sont envoyés au bucket créé par Cloud Build et appartenant à Google Clouddans un projet appartenant à Google Cloud.
  • Aucune valeur : les journaux de compilation sont envoyés à un bucket Cloud Storage créé par Cloud Build et appartenant à l'utilisateur. Ce bucket se trouve dans le projet de l'utilisateur et utilise la même région que la compilation. Si la création de ce bucket échoue, les journaux de compilation sont envoyés à un bucket créé par Cloud Build et appartenant àGoogle Clouddans un projet appartenant à Google Cloud.

Stockage des journaux lors de la compilation à partir de Dockerfiles

Pour configurer le stockage des journaux de compilation lors de la compilation à partir d'un Dockerfile, incluez l'une des valeurs de l'option default-buckets-behavior lors de l'exécution de gcloud builds submit :

  • regional-user-owned-bucket : les journaux de compilation sont envoyés au bucket créé par Cloud Build et appartenant à l'utilisateur dans Cloud Storage. Ce bucket se trouve dans le projet de l'utilisateur et utilise la même région que la compilation.
  • legacy-bucket : les journaux de compilation sont envoyés au bucket créé par Cloud Build et appartenant à Google Clouddans un projet appartenant à Google Cloud. Cette valeur équivaut à ne pas définir ce champ.

Éléments à prendre en compte pour la propriété des buckets

Que vous utilisiez Cloud Storage ou Logging, nous vous recommandons d'envoyer vos journaux de compilation vers un bucket appartenant à l'utilisateur. Il peut s'agir d'un bucket créé par l'utilisateur (par exemple, si vous définissez logsBucket sur un bucket que vous avez créé) ou d'un bucket créé par Cloud Build, mais appartenant à l'utilisateur (par exemple, si vous avez configuré les paramètres d'un bucket régional appartenant à l'utilisateur). De cette façon, vous pouvez modifier certaines propriétés de votre bucket et afficher les journaux qu'il contient à tout moment. Étant donné que les buckets appartenant à Google Cloudse trouvent dans des projets appartenant àGoogle Cloud, leurs buckets ne peuvent pas être affichés ni modifiés, et leurs journaux de compilation ne peuvent être affichés que dans la section Journal de compilation de votre page Détails de la compilation.

En général, les buckets créés par l'utilisateur offrent la plus grande flexibilité en termes de configuration des paramètres de bucket, à la fois pendant et après la création du bucket. Toutefois, dans ce cas, vous devez toujours vous assurer que le bucket créé par l'utilisateur correspond aux besoins de votre compilation. Dans certains cas, par exemple pour gérer les régions des buckets, l'utilisation d'un bucket créé par Cloud Build et appartenant à l'utilisateur vous permet d'envoyer les journaux de compilation à un bucket disponible dans Cloud Storage par défaut et toujours dans la même région que votre compilation. La section suivante fournit plus d'informations sur ce cas d'utilisation :

Points à prendre en compte concernant les régions des buckets

Nous vous recommandons de configurer votre bucket de compilation pour qu'il s'aligne sur la région de votre compilation, car cette configuration peut vous aider à respecter les exigences de résidence des données. Si vous souhaitez aligner vos régions de cette manière, tenez compte des points suivants :

  • Les buckets créés par l'utilisateur dans Logging et Cloud Storage utilisent la région définie lors de la création du bucket. Si vous définissez un bucket créé par l'utilisateur comme valeur logging de votre compilation, assurez-vous que sa région correspond à celle de votre compilation.

  • Si vous avez configuré votre journal de compilation pour utiliser des buckets régionaux appartenant à l'utilisateur dans Cloud Storage, vos journaux de compilation sont toujours envoyés à un bucket situé dans la même région que votre compilation.

  • Les buckets appartenant àGoogle Cloudsont définis sur une région définie par Google Cloud. Par conséquent, cette région peut ne pas toujours correspondre à celle de votre compilation.

Ajouter defaultLogsBucketBehavior aux fichiers de configuration de compilation existants

Si vous ajoutez l'option defaultLogsBucketBehavior à un fichier de configuration de compilation existant dans lequel vous avez déjà configuré logging ou logsBucket, nous vous recommandons d'évaluer tous vos paramètres de stockage des journaux pour vous assurer que vos journaux sont stockés comme prévu. Cloud Build ignore defaultLogsBucketBehavior si l'une des conditions suivantes est remplie :

  • logging est défini sur CLOUD_LOGGING_ONLY ou NONE.
  • logging est défini sur GCS_ONLY ou LEGACY, et logsBucket est défini.

Si vous exécutez une compilation sans champs de stockage de journaux définis dans votre fichier de configuration de compilation, Cloud Build définit logging sur LEGACY.

Étapes suivantes