Archivia e gestisci i log di build

Quando esegui le build, Cloud Build raccoglie e archivia i log di build. In questa pagina viene spiegato come archiviare, visualizzare ed eliminare i log di build.

Scegli dove archiviare i log di build

Puoi configurare Cloud Build per archiviare i log di build 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 della build, Cloud Build archivia i log di build sia in Logging che in Cloud Storage.

I passaggi seguenti archiviano i log di build solo in Logging:

  1. Nel file di configurazione della build, imposta il valore di logging su CLOUD_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"
      }
    }
    
  2. Utilizza il file di configurazione della build per avviare una build utilizzando la riga di comando, l'API o i attivatori.

Archivia i log di build nel bucket predefinito creato da Google

Per impostazione predefinita, Cloud Build archivia i log delle build in un bucket Cloud Storage creato da Google. Puoi visualizzare i log di build archiviati nel bucket Cloud Storage creato da Google, ma non puoi apportare altre modifiche. Se hai il controllo completo sul bucket di log, archivia i log in un bucket Cloud Storage creato dall'utente.

Archivia i log di build in un bucket creato dall'utente

Autorizzazioni IAM:

Per archiviare i log delle build nel tuo bucket Cloud Storage, devi prima concedere le autorizzazioni IAM necessarie all'account di servizio Cloud Build o all'account di servizio specificato dall'utente:

  • Se il bucket Cloud Storage e Cloud Build si trovano nello stesso progetto Google Cloud e utilizzi l'account di servizio Cloud Build, per impostazione predefinita l'account di servizio Cloud Build avrà le autorizzazioni IAM necessarie. Non devi concedere autorizzazioni aggiuntive.

  • Se il bucket Cloud Storage e Cloud Build si trovano nello stesso progetto Google Cloud e utilizzi un account di servizio specificato dall'utente, concedi il ruolo Amministratore Storage all'account di servizio. Per istruzioni sulla concessione di un ruolo a un account di servizio, consulta Concessione di ruoli nel progetto.

  • Se il bucket Cloud Storage e Cloud Build si trovano in progetti Google Cloud diversi, concedi il ruolo Amministratore Storage all'account di servizio Cloud Build:

    1. Apri la pagina IAM:

      Apri la pagina IAM

    2. Seleziona il progetto in cui esegui le build utilizzando Cloud Build.

    3. Nella tabella delle autorizzazioni, individua l'indirizzo email che termina con @cloudbuild.gserviceaccount.com e annotalo. Questo è il tuo account di servizio Cloud Build.

    4. Apri la pagina IAM nel progetto in cui si trova il bucket Cloud Storage:

      Apri la pagina IAM

    5. Fai clic su Concedi accesso.

    6. Inserisci l'indirizzo email dell'account di servizio Cloud Build.

    7. Seleziona Cloud Storage > Amministratore Storage.

    8. Fai clic su Salva.

Per specificare un bucket Cloud Storage in cui archiviare i log di build:

  1. Nel tuo progetto Google Cloud, crea un bucket Cloud Storage senza alcun criterio di conservazione impostato per archiviare i log delle build.

  2. Nel file di configurazione della build, aggiungi un campo logsBucket che rimanda al bucket Cloud Storage che hai creato per archiviare i log di build. Il seguente esempio di file di configurazione di compilazione contiene le istruzioni per creare un'immagine container e archiviare i log di build in un bucket denominato mylogsbucket:

    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"
           }
        }
    
  3. Utilizza il file di configurazione della build per avviare una build utilizzando la riga di comando, l'API o i 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 build in un bucket regionalizzato e di proprietà dell'utente

Per impostazione predefinita, Cloud Build archivia i log di build in una regione specificata da Google che potrebbe essere diversa dalla località in cui esegui una build. L'opzione defaultLogsBucketBehavior 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, il che può aiutarti a rispettare i requisiti di residenza dei dati.

L'archiviazione dei log nel tuo progetto comporta un costo. Per i dettagli sui prezzi, consulta la pagina relativa ai prezzi di Cloud Storage.

Configura Cloud Build per l'utilizzo di log regionalizzati di proprietà dell'utente:

  1. Concedi le autorizzazioni IAM necessarie.

    • Se utilizzi l'account di servizio Cloud Build, il tuo account di servizio Cloud Build dispone per impostazione predefinita delle autorizzazioni IAM necessarie. Non devi concedere autorizzazioni aggiuntive.

    • Se utilizzi un account di servizio specificato dall'utente, concedi il ruolo Amministratore Storage all'account di servizio. Per istruzioni sulla concessione di un ruolo a un account di servizio, vedi Concessione di ruoli nel progetto.

  2. Nella configurazione della build, aggiungi l'opzione defaultLogsBucketBehavior e imposta il valore su REGIONAL_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"
        }
    }
    
  3. Utilizza il file di configurazione della build per avviare una build utilizzando la riga di comando, l'API o i trigger.

    Quando esegui la build, Cloud Build crea il nuovo bucket di log nella regione in cui stai eseguendo la build, poi archivia i log di build in questo bucket. Le build successive nello stesso progetto e nella stessa regione utilizzeranno il bucket esistente per impostazione predefinita.

Se imposti l'opzione defaultLogsBucketBehavior e poi crei build in più regioni, Cloud Build crea più bucket per i tuoi log di build.

I log di build regionalizzati archiviati nel tuo progetto non hanno criteri di conservazione. Questa impostazione è immutabile.

Precedenza tra le impostazioni dei log

Se aggiungi l'opzione defaultLogsBucketBehavior a un file di configurazione della build esistente e hai già configurato le opzioni logging o logsBucket in precedenza, ti consigliamo di eliminare queste impostazioni per evitare conflitti tra le impostazioni.

Nello specifico, defaultLogsBucketBehavior non funziona se hai configurato:

  • logging: CLOUD_LOGGING_ONLY per archiviare i log di build in Cloud Logging.
  • logging: NONE per disattivare il logging.

Quando esegui una build senza opzioni di logging impostate nella relativa configurazione, Cloud Build imposta logging: LEGACY e archivia i log nel bucket Cloud Storage predefinito creato da Google. Se aggiungi defaultLogsBucketBehavior: REGIONAL_USER_OWNED_BUCKET, questa opzione sostituisce logging: LEGACY.

Visualizza log di build

Autorizzazioni IAM:

  • Se i log di build sono in Logging, concedi il ruolo Visualizzatore log nel progetto in cui la build è configurata alle entità che vogliono visualizzare i log di build:

    1. Apri la pagina IAM:

      Apri la pagina IAM

    2. Seleziona il progetto e fai clic su Apri.

    3. Nella tabella delle autorizzazioni, individua l'ID email dell'entità e fai clic sull'icona a forma di matita.

    4. Seleziona il ruolo Logging > Visualizzatore log.

    5. Fai clic su Salva.

  • Se i log di build si trovano nel bucket Cloud Storage predefinito creato da Google, concedi il ruolo Visualizzatore progetto nel progetto in cui è configurata la build alle entità che vogliono visualizzare i log di build:

    1. Apri la pagina IAM:

      Apri la pagina IAM

    2. Seleziona il progetto e fai clic su Apri.

    3. Nella tabella delle autorizzazioni, individua l'ID email dell'entità e fai clic sull'icona a forma di matita.

    4. Seleziona Progetto > ruolo Visualizzatore.

    5. Fai clic su Salva.

    Se i log di build si trovano in un bucket Cloud Storage creato o di proprietà dell'utente, concedi il ruolo Visualizzatore oggetti Storage alle entità che vogliono visualizzare i log di build:

    1. Apri la pagina IAM:

      Apri la pagina IAM

    2. Seleziona il progetto e fai clic su Apri.

    3. Nella tabella delle autorizzazioni, individua l'ID email dell'entità e fai clic sull'icona a forma di matita.

    4. Seleziona il ruolo Cloud Storage > Visualizzatore oggetti Storage.

    5. Fai clic su Salva.

Per visualizzare i log di build in Cloud Build:

Console

  1. Apri la pagina Cloud Build nella console Google Cloud.

    Apri la pagina di Cloud Build

  2. Seleziona il progetto e fai clic su Apri.

  3. Nel menu a discesa Regione, seleziona la regione della build.

  4. Nella pagina Cronologia build, fai clic su una build specifica.

  5. Nella pagina Dettagli build, in Passaggi, fai clic su Riepilogo build per visualizzare i log di build per l'intera build oppure fai clic su un passaggio di build per visualizzare i log relativi a quel passaggio.

    Screenshot dei log di build nella pagina Dettagli build

  6. Se i log sono archiviati in Logging, nel riquadro Log di build, fai clic sull'icona per visualizzarli in Esplora log.

    Screenshot dei log di build in Esplora log

gcloud

Esegui il comando gcloud builds log, dove build-id è l'ID della build per cui vuoi ottenere i log di build. L'ID build viene visualizzato al termine del processo 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 build in GitHub e GitHub Enterprise:

Se crei un GitHub o un trigger di GitHub Enterprise e hai specificato --include-logs-with-status come opzione, puoi visualizzare i log della build in GitHub e GitHub Enterprise.

Per visualizzare i log di build in GitHub e GitHub Enterprise:

  1. Vai al repository associato al trigger.

  2. Vai all'elenco dei commit.

  3. Individua la riga del commit di cui vuoi visualizzare i log di build.

  4. Fai clic sull'icona del risultato nella riga del commit.

    Verrà visualizzato un elenco dei controlli associati al commit.

  5. Fai clic su Dettagli per la riga di cui vuoi visualizzare i log di build.

    Verrà visualizzata la pagina Riepilogo associata al tuo commit. Se hai creato un trigger utilizzando il flag --include-logs-with-status, i log di build verranno visualizzati nella sezione Dettagli della pagina.

Elimina log di build

Non puoi eliminare i log di build nel bucket di log creato da Google.

Per eliminare i log di build in un bucket di log creato dall'utente:

  1. Concedi il ruolo Amministratore oggetti Storage all'utente o all'account di servizio eliminando i log.

  2. Elimina i log della build seguendo le istruzioni per eliminare gli oggetti Cloud Storage in Eliminazione degli oggetti.

Per eliminare il bucket di log creato dall'utente:

  1. Concedi il ruolo Amministratore archiviazione all'utente o all'account di servizio eliminando il bucket dei log.

  2. Elimina il bucket dei log seguendo le istruzioni per eliminare un bucket in Eliminazione dei bucket.

Passaggi successivi