Quando esegui le build, Cloud Build raccoglie e archivia i log di build. Questa pagina spiega come archiviare, visualizzare ed eliminare i log di compilazione.
Scegli dove archiviare i log di compilazione
Puoi configurare Cloud Build in modo da archiviare i log di compilazione in Cloud Logging o in Cloud Storage includendo il campo logging
nel file di configurazione di Cloud Build.
Se non specifichi un campo logging
nel file di configurazione di Cloud Build, Cloud Build archivia i log di compilazione sia in Logging sia in Cloud Storage.
I seguenti passaggi archiviano i log di compilazione solo in Logging:
Nel file di configurazione di compilazione, imposta il valore di
logging
suCLOUD_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" } }
Utilizza il file di configurazione della build per avviare una build utilizzando la riga di comando, l'API o gli attivatori.
Mappa i campi del log di compilazione ai campi di voce di log
Puoi configurare il JSON dei log di compilazione in modo che i campi dei log di compilazione specificati
siano mappati ai campi LogEntry
quando il log di compilazione viene inviato a Logging.
Ad esempio, se il log di compilazione contiene un message
, il messaggio viene visualizzato in textPayload
o jsonPayload.message
nella voce del log risultante. I campi di log non mappabili vengono visualizzati nella voce del logjsonPayload
.
Per attivare la mappatura dei campi nei log di compilazione, imposta il campo enableStructuredLogging
BuildOptions
su TRUE
.
La tabella seguente mostra i campi del log di compilazione che mappano a un campo della voce di log:
Campo BuildLog (JSON) | Campo LogEntry | Descrizione | Note |
---|---|---|---|
message |
textPayload o jsonPayload.message |
Consente agli utenti di impostare il messaggio di log | Deve essere una stringa. Se il log di compilazione contiene solo campi mappabili, il messaggio viene visualizzato in Se il log di compilazione contiene più passaggi, l'identificatore del passaggio viene visualizzato all'inizio del messaggio. |
severity |
severity |
Consente agli utenti di impostare la gravità dei log. | Deve essere un enum di LogSeverity . |
I seguenti campi del log di compilazione non possono essere mappati e verranno rimossi dalla voce del log se compaiono in un log di compilazione:
httpRequest
logging.googleapis.com/insertId
logging.googleapis.com/labels
logging.googleapis.com/operation
logging.googleapis.com/sourceLocation
logging.googleapis.com/spanId
logging.googleapis.com/trace
logging.googleapis.com/trace_sampled
time
timestamp
timestampSeconds
timestampNanos
Tutti gli altri campi del log di compilazione verranno visualizzati all'interno di jsonPayload
della voce di log.
Memorizzare i log di compilazione nel bucket predefinito creato da Google
Per impostazione predefinita, Cloud Build archivia i log di compilazione in un bucket Cloud Storage creato da Google. Puoi visualizzare i log di compilazione archiviati nel bucket Cloud Storage creato da Google, ma non puoi apportare altre modifiche. Se hai bisogno del controllo completo sul bucket dei log, memorizza i log in un bucket Cloud Storage creato dall'utente.
Archivia i log di compilazione in un bucket creato dall'utente
Autorizzazioni IAM:
Per archiviare i log di compilazione nel tuo bucket Cloud Storage, devi prima concedere le autorizzazioni IAM necessarie all'account di servizio che utilizzi per la compilazione:
Se il bucket Cloud Storage e Cloud Build si trovano nello stesso progetto Google Cloud e utilizzi l'account di servizio legacy di Cloud Build, quest'ultimo dispone per impostazione predefinita delle autorizzazioni IAM necessarie. Non è necessario concedere altre autorizzazioni.
In caso contrario, concedi il ruolo Amministratore di archiviazione all'account di servizio che stai utilizzando per la compilazione:
Apri la pagina IAM nel progetto in cui si trova il tuo bucket Cloud Storage:
Fai clic su Concedi accesso.
Inserisci l'indirizzo email dell'account di servizio.
Seleziona Cloud Storage > Amministratore dello spazio di archiviazione.
Fai clic su Salva.
Per specificare un bucket Cloud Storage in cui archiviare i log di build:
Nel tuo progetto Google Cloud, crea un bucket Cloud Storage senza impostare un criterio di conservazione per archiviare i log di compilazione.
Nel file di configurazione della build, aggiungi un campo
logsBucket
che rimandi al bucket Cloud Storage che hai creato per archiviare i log di build. Il seguente file di configurazione di esempio della build contiene istruzioni per creare un'immagine container e archiviare i log di compilazione in un bucket denominatomylogsbucket
: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" } }
Utilizza il file di configurazione della build per avviare una build utilizzando la riga di comando, l'API o gli attivatori.
Al completamento della build, Cloud Build archivia i log nel bucket Cloud Storage specificato nel file di configurazione della build.
Archivia i log di compilazione in un bucket di proprietà dell'utente e a livello di regione
Per impostazione predefinita, Cloud Build archivia i log di compilazione in una regione specificata da Google che potrebbe essere diversa dalla posizione in cui esegui una compilazione. L'opzione defaultLogsBucketBehavior
ti consente di configurare Cloud Build in modo da utilizzare un bucket di log predefinito all'interno del tuo progetto e nella stessa regione della build. Questa configurazione ti offre un maggiore controllo sulla posizione dei dati dei log,
che può aiutarti a rispettare i requisiti di residenza dei dati.
L'archiviazione dei log nel tuo progetto comporta un costo. Per informazioni dettagliate sui prezzi, consulta la pagina Prezzi di Cloud Storage.
Configura Cloud Build in modo che utilizzi i log di proprietà dell'utente e regionali:
Concedi le autorizzazioni IAM necessarie.
Se utilizzi l'account di servizio Cloud Build legacy, questo account di servizio Cloud Build legacy dispone per impostazione predefinita delle autorizzazioni IAM necessarie. Non è necessario concedere autorizzazioni aggiuntive.
Per altri account di servizio, concedi il ruolo Amministratore archiviazione all'account di servizio che utilizzi per la compilazione. Per istruzioni su come concedere un ruolo a un account di servizio, consulta Concedere i ruoli nel progetto.
Nella configurazione di compilazione, aggiungi l'opzione
defaultLogsBucketBehavior
e imposta il relativo valore suREGIONAL_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" } }
Utilizza il file di configurazione della build per avviare una build utilizzando la riga di comando, l'API o gli attivatori.
Quando esegui la build, Cloud Build crea il nuovo bucket di log nella regione in cui stai eseguendo la build, quindi memorizza i log di build in questo bucket. Le build successive nello stesso progetto e nella stessa regione utilizzeranno per impostazione predefinita il bucket esistente.
Se imposti l'opzione defaultLogsBucketBehavior
e poi crei build in più regioni, Cloud Build crea più bucket per i log di compilazione.
I log di compilazione a livello di regione archiviati nel tuo progetto non hanno un criterio di conservazione. Questa impostazione è immutabile.
Precedenza tra le impostazioni dei log
Se aggiungi l'opzione defaultLogsBucketBehavior
a un file build.config esistente e hai configurato in precedenza le opzioni logging
o logsBucket
, ti consigliamo di eliminare queste impostazioni per evitare conflitti tra le impostazioni.
Nello specifico, defaultLogsBucketBehavior
non funzionerà se hai configurato:
logging: CLOUD_LOGGING_ONLY
per archiviare i log di compilazione in Cloud Logging.logging: NONE
per disattivare il logging.
Quando esegui una build senza opzioni di logging impostate nella configurazione di build, Cloud Build imposta logging: LEGACY
e archivia i log nel bucket Cloud Storage predefinito creato da Google. Se aggiunti, defaultLogsBucketBehavior: REGIONAL_USER_OWNED_BUCKET
logging: LEGACY
.
Visualizza i log di compilazione
Autorizzazioni IAM:
Se i log di compilazione si trovano in Logging, concedi il ruolo Visualizzatore log nel progetto in cui è configurata la compilazione alle entità che vogliono visualizzare i log di compilazione:
Apri la pagina IAM:
Seleziona il progetto e fai clic su Apri.
Nella tabella delle autorizzazioni, individua l'ID indirizzo email dell'entità e fai clic sull'icona a forma di matita.
Seleziona il ruolo Logging > Visualizzatore log.
Fai clic su Salva.
Se i log di compilazione si trovano nel bucket Cloud Storage predefinito creato da Google, concedi il ruolo Visualizzatore progetto al progetto in cui è configurata la compilazione ai principali che vogliono visualizzare i log di compilazione:
Apri la pagina IAM:
Seleziona il progetto e fai clic su Apri.
Nella tabella delle autorizzazioni, individua l'ID indirizzo email dell'entità e fai clic sull'icona a forma di matita.
Seleziona il ruolo Progetto > Visualizzatore.
Fai clic su Salva.
Se i log di compilazione si trovano in un bucket Cloud Storage creato o di proprietà dell'utente, conceda il ruolo Visualizzatore oggetti Storage agli entità principali che vogliono visualizzare i log di compilazione:
Apri la pagina IAM:
Seleziona il progetto e fai clic su Apri.
Nella tabella delle autorizzazioni, individua l'ID indirizzo email dell'entità e fai clic sull'icona a forma di matita.
Seleziona il ruolo Cloud Storage > Visualizzatore oggetti Storage.
Fai clic su Salva.
Per visualizzare i log di compilazione in Cloud Build:
Console
Apri la pagina Cloud Build nella console Google Cloud.
Seleziona il progetto e fai clic su Apri.
Nel menu a discesa Regione, seleziona la regione per la build.
Nella pagina Cronologia build, fai clic su una build specifica.
Nella pagina Dettagli build, fai clic su Riepilogo build in Passaggi per visualizzare i log di build per l'intera build o fai clic su un passaggio di build per visualizzare i log di build relativi a quel passaggio.
Se i log sono archiviati in Logging, nel riquadro Generare log, fai clic sull'icona
per visualizzarli in Esplora log.
gcloud
Esegui il comando gcloud builds log
,
dove build-id è l'ID della compilazione per la quale
vuoi recuperare i log di compilazione. L'ID build viene visualizzato al termine della procedura di invio della build quando esegui gcloud builds submit
o nella colonna ID quando esegui gcloud builds list
.
gcloud builds log build-id
Per visualizzare i log di compilazione in GitHub e GitHub Enterprise:
Se crei un trigger GitHub o GitHub Enterprise e specifichi --include-logs-with-status
come opzione, puoi visualizzare i log di compilazione in GitHub e GitHub Enterprise.
Per visualizzare i log di compilazione in GitHub e GitHub Enterprise:
Vai al repository associato al tuo trigger.
Vai all'elenco dei commit.
Individua la riga del commit per cui vuoi visualizzare i log di compilazione.
Fai clic sull'icona del risultato nella riga del commit.
Verrà visualizzato un elenco di controlli associati al commit.
Fai clic su Dettagli per la riga di cui vuoi visualizzare i log di compilazione.
Viene visualizzata la pagina Riepilogo associata al commit. Se hai creato un trigger utilizzando il flag
--include-logs-with-status
, vedrai i log di compilazione nella sezione Dettagli della pagina.
Eliminare i log di compilazione
Non puoi eliminare i log di compilazione nel bucket di log creato da Google.
Per eliminare i log di compilazione in un bucket di log creato dall'utente:
Concedi il ruolo Amministratore oggetti archiviazione all'utente o all'account di servizio che elimina i log.
Elimina i log di compilazione seguendo le istruzioni per eliminare gli oggetti Cloud Storage in Eliminare gli oggetti.
Per eliminare il bucket di log creato dall'utente:
Concedi il ruolo Amministratore archiviazione all'utente o all'account di servizio che elimina il bucket dei log.
Elimina il bucket dei log seguendo le istruzioni per eliminare un bucket in Eliminare i bucket.
Passaggi successivi
- Scopri di più sugli audit log creati da Cloud Build.
- Scopri come visualizzare i risultati della build.
- Scopri di più sulle autorizzazioni IAM di Cloud Build.