Archivia e gestisci i log di build

Quando esegui le build, Cloud Build raccoglie e archivia i tuoi log di build. Questa pagina spiega 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 di compilazione per avviare una build utilizzando la riga di comando, l'API o i trigger.

Archivia i log di build nel bucket predefinito creato da Google

Per impostazione predefinita, Cloud Build archivia i log di 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 bisogno del controllo completo del bucket di log, archiviali 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 di build nel tuo bucket Cloud Storage, devi prima concedere le autorizzazioni IAM necessarie all'account di servizio che utilizzi per la build:

  • Se il bucket Cloud Storage e Cloud Build si trovano nello stesso progetto Google Cloud e utilizzi l'account di servizio Cloud Build legacy, per impostazione predefinita l'account di servizio Cloud Build dispone delle autorizzazioni IAM necessarie. Non devi concedere altre autorizzazioni.

  • In tutti gli altri casi, concedi il ruolo Storage Admin all'account di servizio che stai utilizzando per la build:

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

      Apri la pagina IAM

    2. Fai clic su Concedi accesso.

    3. Inserisci l'indirizzo email dell'account di servizio.

    4. Seleziona Cloud Storage > Amministratore Storage.

    5. 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 di build.

  2. Nel file di configurazione di compilazione, 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 compilazione di esempio contiene 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 di compilazione per avviare una build utilizzando la riga di comando, l'API o i trigger.

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 di proprietà dell'utente e regionalizzato

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 che utilizzi 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, in modo da rispettare i requisiti di residenza dei dati.

L'archiviazione dei log nel tuo progetto comporta un costo. Per i dettagli sui prezzi, vedi Prezzi di Cloud Storage.

Configura Cloud Build per l'utilizzo di log di proprietà dell'utente a livello di regione:

  1. Concedi le autorizzazioni IAM necessarie.

    • Se utilizzi l'account di servizio Cloud Build legacy, per impostazione predefinita l'account di servizio Cloud Build dispone delle autorizzazioni IAM necessarie. Non è necessario concedere autorizzazioni aggiuntive.

    • Per gli altri account di servizio, concedi il ruolo Storage Admin all'account di servizio che utilizzi per la build. Per istruzioni sulla concessione di un ruolo a un account di servizio, consulta 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 di compilazione 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 esegui la build e 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, ti consigliamo di eliminare queste impostazioni per evitare conflitti tra le impostazioni.

In particolare, defaultLogsBucketBehavior non funzionerà 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 configurazione della build, 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 i log di build

Autorizzazioni IAM:

  • Se i log di build si trovano in Logging, concedi il ruolo Visualizzatore log sul 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 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 al 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 il ruolo Progetto > Visualizzatore.

    5. Fai clic su Salva.

    Se i log di build si trovano in un bucket Cloud Storage creato dall'utente 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 per la tua 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 di quel passaggio.

    Screenshot dei log di build nella pagina Dettagli build

  6. Se i log sono archiviati in Logging, nel riquadro Crea log fai clic sull'icona per visualizzare i log 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 alla fine del processo di invio della build quando esegui gcloud builds submit oppure 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 GitHub Enterprise e specifica --include-logs-with-status come opzione, puoi visualizzare i tuoi log di 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 per cui vuoi visualizzare i log di build.

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

    Vedrai un elenco di controlli associati al commit.

  5. Fai clic su Dettagli per la riga per la quale 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 saranno visualizzati nella sezione Dettagli della pagina.

Elimina i 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 che elimina i log.

  2. Elimina i log di build utilizzando le istruzioni per eliminare gli oggetti Cloud Storage in Eliminazione di oggetti.

Per eliminare il bucket dei log creato dall'utente:

  1. Concedi il ruolo Storage Admin all'utente o all'account di servizio che elimina il bucket dei log.

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

Passaggi successivi