Risoluzione degli errori di deployment

Questa pagina descrive:

  • Come esaminare i dettagli e i log per i deployment e le singole revisioni.

  • Strategie di risoluzione dei problemi per gli errori comuni che potresti riscontrare durante il deployment di una configurazione Terraform.

Controllare i dettagli e i log di deployment

Puoi esaminare i dettagli e i log sia per il deployment sia per le singole revisioni.

Controlla lo stato del deployment

Ogni implementazione contiene informazioni sullo stato corrente, sul codice di errore e sui dettagli sulle cause dell'errore.

In caso di errori, inizia con la visualizzazione dello stato di un deployment.

Controllare lo stato di una revisione

Se un deployment non riesce con il codice di errore REVISION_FAILED, puoi visualizzare lo stato di una revisione.

Nell'output dello stato della revisione, controlla i campi stateDetail e errorCode.

Lo stato della revisione include le stesse informazioni di un deployment. Inoltre, include l'ID build.

Controlla i log di Cloud Build

Visualizza lo stato di una revisione e ottieni l'ID build di Cloud Build utilizzato dalla revisione.

Utilizza l'ID build per ispezionare i log di Cloud Build. Per informazioni dettagliate sull'ispezione dei risultati della build, consulta Visualizzare i risultati della build.

Errori comuni

Questa sezione descrive gli errori comuni che potresti riscontrare durante il deployment di una configurazione Terraform con Infra Manager.

Deployment non riuscito

Se lo stato del deployment è FAILED, il deployment ha riscontrato un errore imprevisto.

Visualizza lo stato del deployment e controlla i campi stateDetail e errorCode per ulteriori informazioni.

Se un deployment non riesce con il codice di errore REVISION_FAILED, puoi controllare lo stato della revisione.

Errori di configurazione

Se lo stato del deployment è FAILED, il deployment potrebbe non essere riuscito a causa di errori di configurazione con la configurazione di Terraform.

Se l'errore di deployment è correlato alla configurazione, i campi tfErrors e errorLogs sono inclusi nell'output dello stato del deployment. Esempi di errori di configurazione includono una configurazione non valida o autorizzazioni mancanti.

Visualizza gli errori di Terraform. Nell'output dello stato del deployment:

  • tfErrors è un riepilogo degli errori rilevati da Terraform (limitati da Infra Manager a 10 errori in questo elenco).
  • errorLogs puntino a un oggetto Cloud Storage nel bucket degli elementi. Questo bucket contiene tutti i tfErrors in formato JSON delimitato da una nuova riga.

Ogni tfError ha un indirizzo della risorsa e una descrizione dell'errore leggibile nel campo errorDescription. Se la risorsa non va a buon fine a causa di un codice di errore HTTP restituito da un'API Google Cloud , viene compilato anche il campo httpResponseCode. Eventuali informazioni aggiuntive sugli errori dell'API vengono registrate nel campo error.

Nell'account di servizio mancano le autorizzazioni per recuperare la configurazione

Viene visualizzato il seguente errore:

  error downloading 'GCS_LOCATION': googleapi: Error 403: SA_EMAIL does
  not have storage.objects.list access to the Google Cloud Storage bucket.

Questo errore si verifica perché Infra Manager non ha l'autorizzazione per recuperare la configurazione di Terraform dal bucket Cloud Storage.

Per risolvere il problema, concedi il ruolo storage.objectViewer all'account di servizio. Per informazioni dettagliate sulla concessione delle autorizzazioni all'account di servizio, consulta Configurare l'account di servizio.

Posizione errata per il recupero della configurazione

Viene visualizzato il seguente errore:

  `blueprint fetch failed: invalid path`

Questo errore viene visualizzato quando viene specificata una posizione non valida per recuperare la configurazione Terraform. Infra Manager utilizza il termine blueprint per fare riferimento a una configurazione Terraform.

Per risolvere questo errore, verifica la posizione della configurazione di Terraform e assicurati che sia formattata correttamente nel comando.

Autorizzazione errata per l'attivazione delle risorse

Gli errori di solito sono inferiori a tfErrors con il codice di risposta 403 per le risorse che non è stato possibile implementare.

Questo errore viene visualizzato quando l'account di servizio non dispone di autorizzazioni sufficienti per creare, leggere, aggiornare o eliminare le risorse definite nella configurazione Terraform.

Per risolvere questo errore, consulta Concedere le autorizzazioni IAM all'account di servizio.

Configurazione con il backend

Viene visualizzato il seguente errore:

  `blueprint invalid: found backend config in file.tf`

Questo errore viene visualizzato quando la configurazione di Terraform contiene un blocco di backend. Infrastructure Manager gestisce il backend, pertanto non è possibile definire un blocco di backend nella configurazione di Terraform.

Per risolvere questo errore, rimuovi il blocco di backend dalla configurazione.

Convalida la configurazione del repository Cloud Build

Se Infra Manager non riesce ad accedere al tuo repository Git (utilizzando un repository Git privato o il flusso di lavoro automatico di Cloud Build), potrebbe essere necessario verificare che il repository Cloud Build sia stato configurato correttamente.

Per verificare che il repository Cloud Build sia stato configurato per fornire accesso al repository privato, consulta Connettersi a un repository GitHub.

Infra Manager utilizza la prima connessione in cui l'URL del repository Cloud Build corrisponde alla configurazione Terraform (a cui si fa riferimento in --git-source-repo) e in cui è in grado di generare un token di sola lettura. La connessione del repository viene convalidata direttamente da una chiamata all'API accessReadToken nel repository Cloud Build selezionato.

Esegui questo comando utilizzando l'account di servizio Infra Manager per verificare che le autorizzazioni siano corrette:

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token \
--impersonate-service-account=SERVICE_ACCOUNT)" \
"https://cloudbuild.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/connections/CB_CONNECTION/repositories/CB_REPO:accessReadToken"

Passaggi successivi