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 della build, i log della 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 log. La posizione 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 della build, considera quanto segue:

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

  • Se vuoi ridurre la latenza tra il momento in cui viene generato un log di build e il momento in cui Logging lo riceve, 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 Cloudvengono 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 della build per determinare dove vengono inviati i log della build:

  • GCS_ONLY: i log di build vengono inviati ai bucket Cloud Storage.
  • CLOUD_LOGGING_ONLY: i log di build vengono inviati ai bucket 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 Logging. Se invii i log di build a Cloud Storage, consulta la sezione seguente per informazioni sui bucket Cloud Storage disponibili. La sezione Considerazioni per la proprietà del bucket descrive i vantaggi e le considerazioni per i bucket in base alla proprietà del bucket, indipendentemente dalla posizione del bucket.

Opzioni del 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 della build per determinare il tipo di bucket Cloud Storage che riceve i log di build.

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

  • REGIONAL_USER_OWNED_BUCKET: i log di build vengono inviati al bucket di Cloud Storage creato da Cloud Build e di proprietà dell'utente. 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.

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 di Cloud Storage creato da Cloud Build e di proprietà dell'utente. 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ò trattarsi di un bucket creato dall'utente (ad esempio, se imposti logsBucket su un bucket che hai creato) o di 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 del bucket 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 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 maggiori 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 può aiutarti a rispettare 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 regione corrisponda a quella della build.

  • Se hai configurato il log di build in modo che utilizzi bucket regionali di proprietà dell'utente 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 essere sempre allineata alla regione della build.

Aggiunta di defaultLogsBucketBehavior ai file di configurazione della build esistenti

Se aggiungi l'opzione defaultLogsBucketBehavior a un file di configurazione della build esistente in cui hai configurato in precedenza logging o logsBucket, ti consigliamo di valutare tutte le impostazioni di archiviazione dei log per assicurarti che 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 della build, Cloud Build imposta logging su LEGACY.

Passaggi successivi