Archiviazione e visualizzazione dei log di build

Configura il file di configurazione della build in modo da archiviare i log di build nei bucket di log, in modo da poterli raggruppare e analizzare utilizzando gli strumenti di Cloud Logging e Cloud Storage. La configurazione dell'archiviazione dei log di build consente un maggiore controllo sull'archiviazione e sull'analisi dei log. Se lasci le impostazioni di archiviazione dei log di build non definite, Cloud Build le archivia in un bucket di proprietà di Google CloudGoogle con meno opzioni per l'analisi dei log di build.

Questa pagina descrive come archiviare i log di build in diversi tipi di bucket e come visualizzare ed eliminare i log archiviati.

Prima di iniziare

Assicurati di conoscere le opzioni del file di configurazione della build per la configurazione dell'archiviazione dei log di build e in che modo la proprietà del bucket influisce sull'accessibilità dei log. Per saperne di più, vedi Opzioni di archiviazione dei log di build.

Archivia i log di build nei bucket creati dall'utente

I bucket creati dall'utente offrono un maggiore controllo sulla gestione e sulla configurazione dei bucket.

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

I bucket di logging creati dall'utente consentono di modificare il periodo di conservazione dei log di build archiviati. Per archiviare i log di build in un bucket creato dall'utente in Logging:

Concedi autorizzazioni IAM:

Per ottenere le autorizzazioni necessarie per archiviare i log di build in un bucket Cloud Logging creato dall'utente, chiedi all'amministratore di concederti il ruolo IAM Autore configurazione log (roles/logging.configWriter) sull'account o sul account di servizio del tuo progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Configura il bucket di logging:

  1. Crea un bucket e imposta un valore per il campo Periodo di conservazione.

  2. Crea un sink per eseguire il routing dei log di build nel nuovo bucket:

    1. Inserisci quanto segue per il filtro di inclusione della build del sink:

      logName = "projects/PROJECT_ID/logs/cloudbuild"
      

      Sostituisci PROJECT-ID con l' Google Cloud ID progetto.

    2. (Facoltativo) Per impedire che i log di build vengano inviati al bucket di logging predefinito, segui l'esempio in Interrompi l'archiviazione delle voci di log nei bucket di log.

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

Per archiviare i log di build in un bucket Cloud Storage creato dall'utente:

Concedi autorizzazioni IAM:

Se il bucket Cloud Storage e Cloud Build si trovano nello stesso Google Cloud progetto e utilizzi il service account Cloud Build legacy, questo account di servizio dispone delle autorizzazioni IAM necessarie per impostazione predefinita. Non devi concedere ulteriori autorizzazioni. In caso contrario, segui questi passaggi:

Per ottenere le autorizzazioni necessarie per archiviare i log di build in un bucket Cloud Storage creato dall'utente, chiedi all'amministratore di concederti il ruolo IAM Amministratore Storage (roles/storage.admin) sul account di servizio utilizzato per la build. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Configura il bucket Cloud Storage:

  1. Nel tuo Google Cloud progetto,crea un bucket Cloud Storagesenza policy di conservazione impostata per archiviare i log di build.

  2. 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 della build di esempio 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 trigger.

Al termine della build, Cloud Build archivia i log di build nel bucket Cloud Storage specificato nel file di configurazione della build.

Archivia i log di build nei bucket Cloud Storage specifici per regione

Puoi configurare la build in modo che Cloud Build invii i log di build a un bucket Cloud Storage di proprietà dell'utente nella stessa regione della build. L'allineamento delle regioni della build e del bucket di archiviazione dei log di build può aiutarti a rispettare i requisiti di residenza dei dati.

Concedi autorizzazioni IAM:

Se il bucket Cloud Storage e Cloud Build si trovano nello stesso Google Cloud progetto e utilizzi il service account Cloud Build legacy, allora questo account di servizio dispone delle autorizzazioni IAM necessarie per impostazione predefinita. Non devi concedere ulteriori autorizzazioni. In caso contrario, segui questi passaggi:

Per ottenere le autorizzazioni necessarie per archiviare i log di build in un bucket di proprietà dell'utente e specifico per regione, chiedi all'amministratore di concederti il ruolo IAM Amministratore Storage (roles/storage.admin) sul account di servizio utilizzato per la build. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Configura il bucket Cloud Storage specifico per regione:

  1. Nel file di 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"
        }
    }
    
  2. 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 nella regione in cui stai eseguendo la build, quindi archivia i log di build in questo bucket. Le build successive nello stesso progetto e nella stessa regione utilizzeranno il bucket esistente finché REGIONAL_USER_OWNED_BUCKET è attivo. Questo bucket è di proprietà dell'utente, quindi puoi configurarlo come se fosse un bucket creato dall'utente.

    Se imposti l'opzione REGIONAL_USER_OWNED_BUCKET e crei build in più regioni, Cloud Build crea un bucket Cloud Storage per ogni regione univoca.

Puoi anche utilizzare un bucket creato dall'utente se devi allineare la regione della build e il bucket di log. In questo caso, puoi selezionare un bucket creato dall'utente esistente con la stessa regione o crearne uno. Se vuoi crearne uno, segui i passaggi descritti in Archiviare i log di build nei bucket creati dall'utente e assicurati che il bucket creato dall'utente abbia la stessa regione della build.

Visualizza i log di build

Per visualizzare i log di build:

Concedi autorizzazioni IAM:

Per ottenere le autorizzazioni necessarie per visualizzare i log di build in Cloud Storage o Logging, chiedi all'amministratore di concederti i seguenti ruoli IAM sul account di servizio utilizzato per la build:

  • Visualizza i log di build in un bucket Cloud Storage creato dall'utente o di proprietà dell'utente:
    • Visualizzatore oggetti Storage (roles/storage.objectViewer) - le entità che vogliono visualizzare i log di build
    • Logs View Accessor (roles/logging.viewAccessor) - le entità che vogliono visualizzare i log di build
  • Visualizza i log di build nel bucket Cloud Storage predefinito: Visualizzatore (roles/viewer) - il progetto in cui è configurata la build
  • Visualizza i log di build in Logging: Visualizzatore log (roles/logging.viewer) - le entità che vogliono visualizzare i log di build

Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Visualizza i log di build in Google Cloud

Console

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

    Apri la pagina Cloud Build

  2. Seleziona il progetto e fai clic su Apri.

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

  4. Nella pagina Cronologia build, seleziona 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 o seleziona un passaggio di build per visualizzare i log di build per quel passaggio.

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

gcloud

Esegui il comando gcloud builds log dove build-id è l'ID della build per la quale vuoi ottenere i log di build. L'ID build viene visualizzato alla fine 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

Visualizza i log di build in GitHub e GitHub Enterprise

Se crei un trigger GitHub o GitHub Enterprise con la gcloud CLI o l'API Cloud Build e hai specificato --include-logs-with-status come opzione, puoi visualizzare i 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 il quale vuoi visualizzare i log di build.

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

    Viene visualizzato un elenco di controlli associati al commit.

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

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

Elimina i log di build e i bucket

Per ottenere le autorizzazioni necessarie per eliminare i log di build e i bucket in Cloud Storage, chiedi all'amministratore di concederti i seguenti ruoli IAM sul account di servizio utilizzato per la build:

  • Elimina i log di build in un bucket Cloud Storage creato dall'utente o di proprietà dell'utente: Amministratore Storage (roles/storage.admin) - l'utente o il account di servizio che elimina i log di build
  • Elimina un bucket Cloud Storage creato dall'utente o di proprietà dell'utente: Amministratore Storage (roles/storage.admin) - l'utente o il account di servizio che elimina i bucket
  • Elimina un bucket di logging creato dall'utente: Autore configurazione log (roles/logging.configWriter) - il tuo progetto

Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Per eliminare i log di build in un bucket Cloud Storage creato dall'utente o di proprietà dell'utente, segui le istruzioni riportate in Eliminare gli oggetti nella documentazione di Cloud Storage.

Per eliminare un bucket Cloud Storage creato dall'utente o di proprietà dell'utente, segui le istruzioni riportate in Eliminare i bucket nella documentazione di Cloud Storage.

Per eliminare un bucket di logging creato dall'utente, segui le istruzioni riportate in Eliminare un bucket nella documentazione di Logging.

Passaggi successivi