Risoluzione degli errori delle build

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Questa pagina fornisce strategie per la risoluzione dei problemi, nonché soluzioni per alcuni messaggi di errore comuni che potrebbero essere visualizzati durante l'esecuzione di una build.

Hai esaminato i log di build?

Utilizza i log di build Logging o Cloud Storage per ulteriori informazioni sull'errore della build. I log scritti in stdout o stderr vengono visualizzati automaticamente nella Google Cloud Console.

Le build manuali non vanno a buon fine perché l'utente non ha accesso ai log di build

Quando provi a eseguire una build manuale viene visualizzato il seguente errore:

AccessDeniedAccess denied. [EMAIL_ADDRESS] does not have storage.objects.get access to the Google Cloud Storage object.

Questo errore viene visualizzato perché Cloud Build richiede che gli utenti che eseguono build manuali e che utilizzano il bucket di log Cloud Storage predefinito abbiano il ruolo IAM Visualizzatore progetto oltre al ruolo Editor Cloud Build. Per risolvere questo errore, puoi procedere in uno dei seguenti modi:

Build non riuscite a causa delle autorizzazioni mancanti per l'account di servizio

Cloud Build utilizza un account di servizio speciale per eseguire le build per tuo conto. Se l'account di servizio Cloud Build non dispone dell'autorizzazione necessaria per eseguire un'attività, verrà visualizzato il seguente errore:

Missing necessary permission iam.serviceAccounts.actAs for [USER] on the service account [CLOUD_BUILD_SERVICE_ACCOUNT]@PROJECT.iam.gserviceaccount.com

Per correggere questo errore, concedi l'autorizzazione richiesta all'account di servizio. Utilizza le informazioni nelle pagine seguenti per determinare l'autorizzazione da concedere all'account di servizio Cloud Build:

Gli errori di compilazione dovuti alle autorizzazioni mancanti per l'account di servizio si verificano generalmente quando si tenta di eseguire il deployment utilizzando Cloud Build.

Errore di autorizzazione negata durante il deployment su Cloud Functions

Viene visualizzato il seguente errore durante il tentativo di utilizzare Cloud Functions:

ResponseError: status=[403], code=[Ok], message=[Permission 'cloudfunctions.functions.get' denied

Per risolvere questo errore, concedi il ruolo Sviluppatore Cloud Functions all'account di servizio Cloud Build.

Errore di autorizzazione mancante durante il deployment su Cloud Functions

Viene visualizzato il seguente errore durante il tentativo di eseguire il deployment in Cloud Functions:

Missing necessary permission iam.serviceAccounts.actAs for [USER] on the service account [CLOUD_BUILD_SERVICE_ACCOUNT]@PROJECT.iam.gserviceaccount.com

Per risolvere questo errore, concedi il ruolo Utente account di servizio all'account di servizio Cloud Build.

Errore durante il deployment su App Engine

Viene visualizzato il seguente errore durante il tentativo di eseguire il deployment su App Engine:

Missing necessary permission iam.serviceAccounts.actAs for [USER] on the service account [CLOUD_BUILD_SERVICE_ACCOUNT]@PROJECT.iam.gserviceaccount.com

Per risolvere questo errore, concedi il ruolo Amministratore App Engine all'account di servizio Cloud Build.

Errore durante il deployment su GKE

Viene visualizzato il seguente errore durante il tentativo di deployment su GKE:

Missing necessary permission iam.serviceAccounts.actAs for [USER] on the service account [CLOUD_BUILD_SERVICE_ACCOUNT]@PROJECT.iam.gserviceaccount.com

Per risolvere questo errore, concedi il ruolo sviluppatore GKE all'account di servizio Cloud Build.

Errore durante il deployment su Cloud Run

Viene visualizzato il seguente errore durante il tentativo di eseguire il deployment su Cloud Run:

Missing necessary permission iam.serviceAccounts.actAs for [USER] on the service account [CLOUD_BUILD_SERVICE_ACCOUNT]@PROJECT.iam.gserviceaccount.com

Questo errore viene visualizzato perché l'account di servizio Cloud Build non dispone delle autorizzazioni IAM necessarie per eseguire il deployment su Cloud Run. Per informazioni sulla concessione delle autorizzazioni necessarie, consulta Deployment su Cloud Run.

Errore durante l'archiviazione delle immagini in Container Registry

Viene visualizzato il seguente errore quando la build tenta di archiviare immagini create in Container Registry:

[EMAIL_ADDRESS] does not have storage.buckets.create access to project [PROJECT_NAME]

Questo errore viene visualizzato perché l'account di servizio Cloud Build non dispone del ruolo Amministratore Storage necessario per archiviare le immagini container in Container Registry.

Build non riuscite a causa di un'autorizzazione SSH non valida

Quando esegui una build viene visualizzato il seguente errore:

Could not parse ssh: [default]: invalid empty ssh-agent socket, make sure SSH_AUTH_SOCK is set

Questo errore indica un problema con l'autorizzazione SSH. Un esempio comune è un errore di autorizzazione SSH che si verifica quando si accede a repository GitHub privati con Cloud Build. Per istruzioni sulla configurazione di SSH per GitHub, consulta la pagina Accedere ai repository GitHub privati.

Build non riuscite a causa di un errore No route to host

Quando esegui una build in un pool privato viene visualizzato il seguente errore, o simile:

Unable to connect to the server: dial tcp 192.168.10.XX:<port>: connect: no route to host

Cloud Build esegue i propri Cloud builder sulla macchina virtuale nel progetto gestito da Google utilizzando i container Docker. All'interfaccia del bridge Docker (e di conseguenza ai container collegati a questa interfaccia) viene assegnato un intervallo IP di 192.168.10.0/24, che rende impossibile la comunicazione con gli host esterni nella stessa subnet. Quando si allocano gli intervalli IP per le risorse nei progetti durante la configurazione del pool privato, si consiglia di selezionare un intervallo al di fuori di 192.168.10.0/24. Per le istruzioni, vedi Configurare l'ambiente per i pool privati.

La connessione alla risorsa esterna non riesce perché non è abilitato un IP esterno

Quando ti connetti a una risorsa esterna da un pool privato, viene visualizzato il seguente errore:

 Failed to connect to <external_domain>: Connection timed out

I pool privati utilizzano IP esterni per accedere alle risorse sulla rete Internet pubblica, ad esempio i repository esterni. Quando crei o aggiorni un pool privato, seleziona la casella per assegnare IP esterni al pool privato. Per istruzioni su come creare o aggiornare i campi all'interno del pool privato, consulta Creazione e gestione dei pool privati.

Il trigger di build non riesce perché manca l'autorizzazione cloudbuild.builds.create

Quando esegui un trigger di build viene visualizzato il seguente errore:

Failed to trigger build: Permission 'cloudbuild.builds.create' denied on resource 'projects/xxxxxxxx' (or it may not exist)

I trigger di build utilizzano l'account di servizio Cloud Build per creare una build. L'errore riportato sopra indica che l'account di servizio Cloud Build non ha l'autorizzazione IAM cloudbuild.builds.create, necessaria per l'esecuzione dell'account di servizio. Puoi risolvere l'errore concedendo il ruolo IAM Cloud Build Service Account a [PROJECT_NUMBER]@cloudbuild.gserviceaccount.com. Per istruzioni su come concedere questo ruolo, consulta Configurazione dell'accesso per l'account di servizio Cloud Build.

Errore timeout I/O

Quando esegui una build viene visualizzato il seguente errore:

Timeout - last error: dial tcp IP_ADDRESS: i/o timeout

Questo errore si verifica in genere quando la build tenta di accedere alle risorse in una rete privata. Le build eseguite tramite Cloud Build possono accedere alle risorse private nella rete Internet pubblica, ad esempio in un repository o in un registro, ma le risorse non possono accedere alle risorse in una rete privata.

Errori client 4xx

Questo gruppo di errori indica che la richiesta di compilazione non è riuscita, probabilmente per errore dell'utente che ha inviato la richiesta. Di seguito sono riportati alcuni esempi di errori del client 4xx:

  • **Error**: 404 : Requested entity was not found
  • **Error**: 404 : Trigger not found
  • **Error**: 400 : Failed Precondition
  • **Error**: 403 : Permission denied

Quando vedi un errore client 4xx, controlla i log della build per vedere se contiene ulteriori informazioni sul motivo dell'errore. Alcune cause comuni degli errori dei client includono:

  • La posizione di origine specificata non ha nulla di nuovo da impegnare e l'albero di lavoro è pulito. In questo caso, controlla la posizione del codice sorgente e riprova.
  • Il tuo repository non contiene un file di configurazione della build. In questo caso, carica un file di configurazione della build nel repository ed esegui di nuovo la build.
  • Hai specificato un ID attivatore errato.
  • Di recente hai aggiunto un nuovo repository dopo aver installato l'app GitHub e Cloud Build non ha le autorizzazioni per accedere al nuovo repository. In questo caso, connetti il nuovo repository a Cloud Build.
  • Devi concedere un'altra autorizzazione all'account di servizio.

Passaggi successivi