Rozwiązywanie typowych problemów podczas korzystania z narzędzia Terraform na platformie Azure

W tym artykule wymieniono typowe problemy i możliwe rozwiązania podczas korzystania z programu Terraform na platformie Azure.

Jeśli wystąpi problem specyficzny dla programu Terraform, użyj jednego z kanałów pomocy technicznej społeczności firmy HashiCorp.

Kanały pomocy technicznej specyficzne dla programu Terraform firmy HashiCorp

Nie można wyświetlić listy stanu rejestracji dostawcy

Komunikat o błędzie:

Błąd: Nie można wyświetlić listy stanu rejestracji dostawcy, istnieje możliwość, że jest to spowodowane nieprawidłowymi poświadczeniami lub jednostka usługi nie ma uprawnień do korzystania z interfejsu API usługi Resource Manager, błąd platformy Azure: zasoby. ProvidersClient#List: Błąd odpowiedzi na żądanie: StatusCode=403 -- Oryginalny błąd: autorest/azure: Usługa zwróciła błąd. Status=403 Code="AuthorizationFailed" Message="Klient '0000000000-0000-0000-0000-000000000000000' o identyfikatorze obiektu "000000000-0000-0000-0000-000" 00-000000000000 nie ma autoryzacji do wykonania akcji "Microsoft.Resources/subscriptions/providers/read" w zakresie "/subscriptions/00000000-0000-0000-0000-00000000000000" lub zakres jest nieprawidłowy. Jeśli dostępu udzielono niedawno, odśwież swoje poświadczenia”.

Tło: Jeśli uruchamiasz polecenia narzędzia Terraform z usługi Cloud Shell i zdefiniowano pewne zmienne środowiskowe programu Terraform/Azure, czasami mogą pojawić się konflikty. Zmienne środowiskowe i wartość platformy Azure, którą reprezentują, są wymienione w poniższej tabeli:

Zmienna środowiskowa Wartość platformy Azure
ARM_SUBSCRIPTION_ID Identyfikator subskrypcji Azure
ARM_TENANT_ID Identyfikator dzierżawy konta Microsoft
ARM_CLIENT_ID Identyfikator aplikacji jednostki usługi platformy Azure
ARM_CLIENT_SECRET Hasło jednostki usługi platformy Azure

Przyczyna: Od tego zapisu skrypt narzędzia Terraform uruchamiany w usłudze Cloud Shell zastępuje ARM_SUBSCRIPTION_ID zmienne środowiskowe i ARM_TENANT_ID przy użyciu wartości z bieżącej subskrypcji platformy Azure. W związku z tym, jeśli jednostka usługi, do którego odwołuje się zmienna środowiskowa, nie ma praw do bieżącej subskrypcji platformy Azure, żadne operacje narzędzia Terraform nie powiedzą się.

Błąd podczas uzyskiwania blokady stanu

Komunikat o błędzie:

Błąd: Błąd podczas uzyskiwania blokady stanu; Komunikat o błędzie: wystąpił 2 błędy:
* Stanowy obiekt blob jest już zablokowany
* Metadane obiektu blob "terraformlockid" były puste
Narzędzie Terraform uzyskuje blokadę stanu, aby chronić stan przed zapisem przez wielu użytkowników w tym samym czasie. Rozwiąż powyższy problem i spróbuj ponownie. W przypadku większości poleceń można wyłączyć blokowanie za pomocą flagi "-lock=false", ale nie jest to zalecane.

Tło: Jeśli uruchamiasz polecenia programu Terraform względem pliku stanu programu Terraform i jest to jedyny wyświetlany komunikat, mogą mieć zastosowanie następujące przyczyny. Dotyczy plików stanu lokalnego i zdalnego.

Przyczyna: Istnieją dwie potencjalne przyczyny tego błędu. Po pierwsze polecenie narzędzia Terraform jest już uruchomione względem pliku stanu i wymusiło zablokowanie pliku, więc nic się nie przerywa. Drugą potencjalną przyczyną jest to, że wystąpiła przerwa w połączeniu między plikiem stanu a interfejsem wiersza polecenia, gdy polecenia były uruchomione. Ta przerwa występuje najczęściej w przypadku korzystania z plików stanu zdalnego.

Rozwiązanie: Najpierw upewnij się, że nie uruchomiono jeszcze żadnych poleceń względem pliku stanu. Jeśli pracujesz z plikiem stanu lokalnego, sprawdź, czy masz terminale z uruchomionymi poleceniami. Możesz też sprawdzić potoki wdrażania, aby sprawdzić, czy coś uruchomionego może używać pliku stanu. Jeśli to nie rozwiąże problemu, możliwe, że druga przyczyna wyzwoliła błąd. W przypadku pliku stanu zdalnego przechowywanego w kontenerze konta usługi Azure Storage możesz zlokalizować plik i użyć przycisku Przerwij dzierżawę.

Screenshot that shows the Azure Storage container Break lease button.

Jeśli używasz innych zapleczy do przechowywania pliku stanu, aby uzyskać zalecenia, zapoznaj się z dokumentacją platformy HashiCorp.

Błędy sieci VPN

Aby uzyskać informacje na temat rozwiązywania problemów z błędami sieci VPN, zobacz artykuł Rozwiązywanie problemów z hybrydowym połączeniem sieci VPN.