Opzioni di archiviazione dei log di build

Quando esegui le build, Cloud Build raccoglie e archivia i log di build in un bucket di log. In base alle impostazioni del file di configurazione di compilazione, i log di build vengono archiviati nei bucket Cloud Logging, nei bucket Cloud Storage o in entrambe le posizioni. Puoi anche configurare il tipo di bucket Cloud Storage o Logging che contiene i tuoi log. La località e il tipo di bucket influiscono sulla tua capacità di analizzare i log di build e sul livello di controllo che hai sulle impostazioni del bucket.

Panoramica

Quando configuri il file di configurazione di compilazione, tieni presente quanto segue:

  • Se vuoi controllare il periodo di conservazione dei log di build archiviati, inviali a Logging. Rispetto a Cloud Storage, il visualizzatore log in Logging offre anche più opzioni per cercare log di build specifici in un bucket. Tuttavia, quando utilizzi Logging, potrebbe verificarsi un ritardo tra il momento in cui viene generato un log di build e quello in cui Logging lo riceve.

  • Se vuoi ridurre la latenza tra il momento in cui viene generato un log di build e quello in cui è disponibile in Cloud Storage, invia i log di build a un bucket in Cloud Storage.

La proprietà del bucket influisce anche sul modo in cui puoi interagire con i log di build archiviati. Ad esempio, un bucket di proprietà dell'utente ti consente di configurare le impostazioni del bucket, mentre i bucket di proprietà di Google Cloudsono creati da Google Cloude non possono essere modificati dagli utenti. Logging e Cloud Storage offrono diverse opzioni per configurare il tipo di bucket che riceve i log di build.

Località dei bucket

Configura il campo logging nel file di configurazione di build per determinare dove vengono inviati i log di build:

  • GCS_ONLY: i log di build vengono inviati ai bucket Cloud Storage.
  • CLOUD_LOGGING_ONLY: i log di build vengono inviati ai bucket di Logging.
  • LEGACY: i log di build vengono inviati ai bucket in entrambe le località. Se logging non è definito, Cloud Build utilizza questo valore.
  • NONE: i log di build non vengono archiviati.

Se invii i log di build a Logging, consulta Configurazione del routing di Cloud Logging per informazioni sulle opzioni dei bucket di Logging. Se invii i log di build a Cloud Storage, consulta la sezione seguente per informazioni sui bucket Cloud Storage disponibili. La sezione Considerazioni sulla proprietà dei bucket descrive i vantaggi e le considerazioni per i bucket in base alla proprietà, indipendentemente dalla località.

Opzioni dei bucket in Cloud Storage

Se i log di build vengono inviati a Cloud Storage, Cloud Build valuta i campi logsBucket e defaultLogsBucketBehavior nel file di configurazione di build per determinare il tipo di bucket Cloud Storage che riceve i log di build.

Il campo logsBucket può avere qualsiasi tipo di bucket. Se logsBucket è definito, i log vengono sempre inviati a quel bucket in Cloud Storage, indipendentemente dal valore defaultLogsBucketBehavior. Se logsBucket non è definito, il valore di defaultLogsBucketBehavior viene utilizzato come segue:

  • REGIONAL_USER_OWNED_BUCKET: i log di build vengono inviati al bucket creato da Cloud Build e di proprietà dell'utente in Cloud Storage. Questo bucket si trova nel progetto dell'utente e utilizza la stessa regione della build.
  • LEGACY_BUCKET: i log di build vengono inviati al bucket creato da Cloud Build e di proprietà di Google Cloudin un progetto di proprietà di Google Cloud.
  • Nessun valore: i log di build vengono inviati a un bucket creato da Cloud Build e di proprietà dell'utente in Cloud Storage. Questo bucket si trova nel progetto dell'utente e utilizza la stessa regione della build. Se la creazione di questo bucket non va a buon fine, i log di build vengono inviati a un bucket creato da Cloud Build e di proprietà diGoogle Cloudin un progetto di proprietà di Google Cloud.

Archiviazione dei log durante la creazione da Dockerfile

Per configurare l'archiviazione dei log di build durante la creazione da un Dockerfile, includi uno dei valori del flag default-buckets-behavior quando esegui gcloud builds submit:

  • regional-user-owned-bucket: i log di build vengono inviati al bucket creato da Cloud Build e di proprietà dell'utente in Cloud Storage. Questo bucket si trova nel progetto dell'utente e utilizza la stessa regione della build.
  • legacy-bucket: i log di build vengono inviati al bucket creato da Cloud Build e di proprietà di Google Cloudin un progetto di proprietà di Google Cloud. Questo valore equivale a lasciare il campo non definito.

Considerazioni sulla proprietà dei bucket

Indipendentemente dal fatto che utilizzi Cloud Storage o Logging, ti consigliamo di inviare i log di build a un bucket di proprietà dell'utente. Può essere un bucket creato dall'utente (ad esempio, se imposti logsBucket su un bucket che hai creato) o un bucket creato da Cloud Build, ma di proprietà dell'utente (ad esempio, se hai configurato le impostazioni per un bucket regionale di proprietà dell'utente). In questo modo, puoi modificare determinate proprietà del bucket e visualizzare i log nel bucket in qualsiasi momento. Poiché i bucket di proprietà di Google Cloudsi trovano in progetti di proprietà diGoogle Cloud, i bucket non possono essere visualizzati o modificati e i log di build possono essere visualizzati solo nella sezione Log di build della pagina Dettagli build.

In generale, i bucket creati dagli utenti offrono la massima flessibilità in termini di configurazione delle impostazioni sia durante che dopo la creazione. Tuttavia, in questo caso, devi sempre assicurarti che il bucket creato dall'utente sia in linea con le esigenze della build. In alcuni casi, ad esempio per la gestione delle regioni dei bucket, l'utilizzo di un bucket creato da Cloud Build e di proprietà dell'utente consente di inviare i log di build a un bucket disponibile in Cloud Storage per impostazione predefinita e sempre nella stessa regione della build. La sezione seguente fornisce ulteriori informazioni su questo caso d'uso:

Considerazioni sulle regioni dei bucket

Ti consigliamo di configurare il bucket di build in modo che sia allineato alla regione della build, in quanto questa configurazione potrebbe aiutarti a soddisfare i requisiti di residenza dei dati. Se vuoi allineare le regioni in questo modo, tieni presente quanto segue:

  • I bucket creati dagli utenti in Logging e Cloud Storage utilizzano la regione definita durante la creazione del bucket. Se imposti un bucket creato dall'utente come valore logging della build, assicurati che la sua regione corrisponda a quella della build.

  • Se hai configurato il log di build in modo che utilizzi bucket di proprietà dell'utente a livello di regione in Cloud Storage, i log di build vengono sempre inviati a un bucket nella stessa regione della build.

  • I bucket di proprietà diGoogle Cloudsono impostati su una regione definita da Google Cloud. Di conseguenza, questa regione potrebbe non corrispondere sempre alla regione della build.

Aggiunta di defaultLogsBucketBehavior ai file di configurazione di build esistenti

Se aggiungi l'opzione defaultLogsBucketBehavior a un file di configurazione di compilazione esistente in cui hai configurato in precedenza logging o logsBucket, ti consigliamo di valutare tutte le impostazioni di archiviazione dei log per assicurarti che i log vengano archiviati come previsto. Cloud Build ignora defaultLogsBucketBehavior se si verifica una delle seguenti condizioni:

  • logging è impostato su CLOUD_LOGGING_ONLY o NONE.
  • logging è impostato su GCS_ONLY o LEGACY e logsBucket è definito.

Se esegui una build senza campi di archiviazione dei log definiti nel file di configurazione di build, Cloud Build imposta logging su LEGACY.

Passaggi successivi