Delen via


Veelvoorkomende problemen oplossen bij het gebruik van Terraform in Azure

Dit artikel bevat veelvoorkomende problemen en mogelijke oplossingen bij het gebruik van Terraform in Azure.

Als u een probleem ondervindt dat specifiek is voor Terraform, gebruikt u een van de communityondersteuningskanalen van HashiCorp.

HashiCorp Terraform-specifieke ondersteuningskanalen

Kan de registratiestatus van de provider niet vermelden

Foutbericht:

Fout: de registratiestatus van de provider kan niet worden vermeld. Het is mogelijk dat dit wordt veroorzaakt door ongeldige referenties of dat de service-principal niet gemachtigd is voor het gebruik van de Resource Manager-API, Azure-fout: resources. ProvidersClient#List: Fout bij het reageren op aanvraag: StatusCode=403 -- Oorspronkelijke fout: autorest/azure: Service heeft een fout geretourneerd. Status=403 Code="AuthorizationFailed" Message="The client '0000000-0000-0000-0000-0000000000' with object id '0000000-0000-0000-000 0000000000000 heeft geen autorisatie om de actie Microsoft.Resources/subscriptions/providers/read uit te voeren via het bereik '/subscriptions/0000000000-00000-0000-0000-0000000000000' of het bereik is ongeldig. Als onlangs toegang is verleend, vernieuwt u uw referenties.'

Achtergrond: Als u Terraform-opdrachten uitvoert vanuit de Cloud Shell en u bepaalde Terraform-/Azure-omgevingsvariabelen hebt gedefinieerd, kunt u soms conflicten zien. De omgevingsvariabelen en de Azure-waarde die ze vertegenwoordigen, worden weergegeven in de volgende tabel:

Omgevingsvariabele Azure-waarde
ARM_SUBSCRIPTION_ID Azure-abonnements-id
ARM_TENANT_ID Tenant-id van Microsoft-account
ARM_CLIENT_ID App-id van Azure-service-principal
ARM_CLIENT_SECRET Wachtwoord voor Azure-service-principal

Oorzaak: Vanaf dit schrijven overschrijft het Terraform-script dat wordt uitgevoerd in Cloud Shell de ARM_SUBSCRIPTION_ID en ARM_TENANT_ID omgevingsvariabelen met behulp van waarden uit het huidige Azure-abonnement. Als de service-principal waarnaar wordt verwezen door de omgevingsvariabelen geen rechten heeft voor het huidige Azure-abonnement, mislukken terraform-bewerkingen.

Fout bij het verkrijgen van de statusvergrendeling

Foutbericht:

Fout: Fout bij het verkrijgen van de statusvergrendeling; Foutbericht: 2 fouten zijn opgetreden:
* statusblob is al vergrendeld
* blobmetagegevens 'terraformlockid' was leeg
Terraform verkrijgt een statusvergrendeling om de status te beschermen tegen het schrijven van meerdere gebruikers tegelijk. Los het bovenstaande probleem op en probeer het opnieuw. Voor de meeste opdrachten kunt u het vergrendelen uitschakelen met de vlag '-lock=false', maar dit wordt niet aanbevolen.

Achtergrond: Als u Terraform-opdrachten uitvoert voor een Terraform-statusbestand en deze fout het enige bericht is dat wordt weergegeven, kunnen de volgende oorzaken van toepassing zijn. Van toepassing op lokale en externe statusbestanden.

Oorzaak: Er zijn twee mogelijke oorzaken voor deze fout. De eerste is dat een Terraform-opdracht al wordt uitgevoerd op het statusbestand en dat er een vergrendeling op het bestand is afgedwongen, zodat er niets wordt verbroken. De tweede mogelijke oorzaak is dat er een verbindingsonderbreking is opgetreden tussen het statusbestand en de CLI wanneer opdrachten werden uitgevoerd. Deze onderbreking treedt meestal op wanneer u externe statusbestanden gebruikt.

Oplossing: Controleer eerst of u nog geen opdrachten uitvoert voor het statusbestand. Als u met een lokaal statusbestand werkt, controleert u of er terminals zijn waarop opdrachten worden uitgevoerd. U kunt ook uw implementatiepijplijnen controleren om te zien of er iets wordt uitgevoerd, het statusbestand kan gebruiken. Als dit het probleem niet oplost, is het mogelijk dat de tweede oorzaak de fout heeft geactiveerd. Voor een extern statusbestand dat is opgeslagen in een Azure Storage-accountcontainer, kunt u het bestand zoeken en de knop Lease onderbreken gebruiken.

Screenshot that shows the Azure Storage container Break lease button.

Als u andere back-ends gebruikt om uw statusbestand op te slaan, raadpleegt u de HashiCorp-documentatie voor aanbevelingen.

VPN-fouten

Zie het artikel Problemen met een hybride VPN-verbinding oplossen voor informatie over het oplossen van VPN-fouten.