Risolvere i problemi comuni quando si usa Terraform in Azure

Questo articolo elenca i problemi comuni e le possibili soluzioni quando si usa Terraform in Azure.

Se si verifica un problema specifico per Terraform, usare uno dei canali di supporto della community di HashiCorp.

Canali di supporto specifici di HashiCorp Terraform

Impossibile elencare lo stato di registrazione del provider

Messaggio di errore:

Errore: non è possibile elencare lo stato di registrazione del provider, è possibile che ciò sia dovuto a credenziali non valide o all'entità servizio non dispone dell'autorizzazione per l'uso dell'API Resource Manager, errore di Azure: risorse. ProviderClient#List: Errore di risposta alla richiesta: StatusCode=403 -- Errore originale: autorest/azure: servizio ha restituito un errore. Status=403 Code="AuthorizationFailed" Message="The client '00000000-0000-0000-0000-0000000000000' con id oggetto '000000000-0000-0000-0000-00000-000000000000 non dispone dell'autorizzazione per eseguire l'azione 'Microsoft.Resources/subscriptions/providers/read' sull'ambito '/subscriptions/000000000-0000-0000-0000-0000000000' o l'ambito non è valido. Se l'accesso è stato concesso di recente, aggiornare le credenziali.

Priorità bassa: Se si eseguono comandi Terraform dalla Cloud Shell e sono state definite determinate variabili di ambiente Terraform/Azure, a volte è possibile visualizzare conflitti. Le variabili di ambiente e il valore di Azure che rappresentano sono elencate nella tabella seguente:

Variabile di ambiente Valore di Azure
ARM_SUBSCRIPTION_ID ID sottoscrizione di Azure
ARM_TENANT_ID ID tenant dell'account Microsoft
ARM_CLIENT_ID ID app dell'entità servizio di Azure
ARM_CLIENT_SECRET Password dell'entità servizio di Azure

Causa: a partire da questa scrittura, lo script Terraform eseguito in Cloud Shell sovrascrive le ARM_SUBSCRIPTION_ID variabili di ambiente e ARM_TENANT_ID usando i valori della sottoscrizione di Azure corrente. Di conseguenza, se l'entità servizio a cui fa riferimento le variabili di ambiente non ha diritti per la sottoscrizione di Azure corrente, eventuali operazioni terraform avranno esito negativo.

Errore durante l'acquisizione del blocco dello stato

Messaggio di errore:

Errore: errore durante l'acquisizione del blocco dello stato; Messaggio di errore: 2 errori:
* BLOB di stato è già bloccato
* i metadati BLOB "terraformlockid" erano vuoti
Terraform acquisisce un blocco di stato per proteggere lo stato da scrivere contemporaneamente da più utenti. Risolvere il problema precedente e riprovare. Per la maggior parte dei comandi, è possibile disabilitare il blocco con il flag "-lock=false", ma non è consigliabile.

Priorità bassa: Se si eseguono comandi Terraform su un file di stato terraform e questo errore è l'unico messaggio visualizzato, le cause seguenti potrebbero essere applicate. Si applica ai file di stato locali e remoti.

Causa: Esistono due potenziali cause per questo errore. Il primo è che un comando Terraform è già in esecuzione sul file di stato e ha forzato un blocco sul file, quindi niente interrompe. La seconda causa potenziale è che si è verificata un'interruzione della connessione tra il file di stato e l'interfaccia della riga di comando quando i comandi erano in esecuzione. Questa interruzione si verifica più comunemente quando si usano file di stato remoti.

Risoluzione: Prima di tutto, assicurarsi di non eseguire già comandi nel file di stato. Se si usa un file di stato locale, verificare se sono presenti terminali che eseguono comandi. In alternativa, controllare le pipeline di distribuzione per verificare se un elemento in esecuzione potrebbe usare il file di stato. Se questo non risolve il problema, è possibile che la seconda causa ha attivato l'errore. Per un file di stato remoto archiviato in un contenitore di account Archiviazione di Azure, è possibile individuare il file e usare il pulsante Interruzione lease.

Screenshot that shows the Azure Storage container Break lease button.

Se si usano altri back-end per archiviare il file di stato, per le raccomandazioni, vedere la documentazione di HashiCorp.

Errori VPN

Per informazioni sulla risoluzione degli errori di una connessione VPN, vedere l'articolo Risolvere i problemi relativi a una connessione VPN ibrida.