Behandeln allgemeiner Probleme bei der Verwendung von Terraform in Azure
In diesem Artikel sind allgemeine Probleme bei der Verwendung von Terraform in Azure und mögliche Lösungen aufgeführt.
Wenn Sie auf ein für Terraform spezifisches Problem stoßen, nutzen Sie einen der Supportkanäle der HashiCorp-Community.
Spezifische Supportkanäle für HashiCorp Terraform
- Fragen, Anwendungsfälle und nützliche Muster: Terraform-Abschnitt des HashiCorp-Communityportals
- Anbieterbezogene Fragen: Terraform Provider-Abschnitt des HashiCorp-Communityportals
Der Anbieterregistrierungsstatus kann nicht aufgeführt werden.
Fehlermeldung:
Fehler: Der Registrierungsstatus des Anbieters kann nicht aufgeführt werden, dies liegt möglicherweise an ungültigen Anmeldeinformationen, oder der Dienstprinzipal verfügt nicht über die Berechtigung zum Verwenden der Resource Manager-API, Azure-Fehler: Ressourcen. ProvidersClient#List: Fehler beim Antworten auf Anforderung: StatusCode=403 -- Originalfehler: autorest/azure: Der Dienst hat einen Fehler zurückgegeben. Status=403 Code="AuthorizationFailed" Message="The client '00000000-0000-0000-0000-0000000000' with object id '00000000-0000-0000-0000-0000 000-00000000000" verfügt nicht über die Berechtigung zum Ausführen der Aktion "Microsoft.Resources/subscriptions/providers/read" im Bereich "/subscriptions/0000000-0000-0000-00000-0000000000000", oder der Bereich ist ungültig. If access was recently granted, please refresh your credentials. (Fehler bei der Anforderung von Azure Relay-Informationen: (AuthorizationFailed) Der Client
Hintergrund: Wenn Sie Terraform-Befehle über Cloud Shell ausführen und bestimmte Terraform-/Azure-Umgebungsvariablen festgelegt haben, treten manchmal Konflikte auf. Die Umgebungsvariablen und der Azure-Wert, den sie darstellen, sind in der folgenden Tabelle aufgeführt:
Umgebungsvariable | Azure-Wert |
---|---|
ARM_SUBSCRIPTION_ID | Azure-Abonnement-ID |
ARM_TENANT_ID | Mandanten-ID des Microsoft-Kontos |
ARM_CLIENT_ID | App-ID des Azure-Dienstprinzipals |
ARM_CLIENT_SECRET | Kennwort des Azure-Dienstprinzipals |
Ursache: Zum Zeitpunkt der Erstellung dieses Dokuments überschreibt das Terraform-Skript, das in Cloud Shell ausgeführt wird, die Umgebungsvariablen ARM_SUBSCRIPTION_ID
und ARM_TENANT_ID
mit Werten aus dem aktuellen Azure-Abonnement. Wenn der Dienstprinzipal, auf den die Umgebungsvariablen verweisen, über keine Berechtigungen für das aktuelle Azure-Abonnement verfügt, tritt daher bei allen Terraform-Vorgängen ein Fehler auf.
Fehler beim Abrufen der Zustandssperre
Fehlermeldung:
Fehler: Fehler beim Abrufen der Statussperre; Fehlermeldung: 2 Fehler:
* Status-BLOB ist bereits gesperrt
* Blob-Metadaten "terraformlockid" war leer
Terraform erwirbt eine Zustandssperre, um den Zustand davor zu schützen, von mehreren Benutzern gleichzeitig geschrieben zu werden. Beheben Sie das obige Problem, und versuchen Sie es erneut. Bei den meisten Befehlen können Sie die Sperre mit dem Flag "-lock=false" deaktivieren, dies wird jedoch nicht empfohlen.
Hintergrund: Wenn Sie Terraform-Befehle für eine Terraform-Zustandsdatei ausführen und dieser Fehler die einzige angezeigte Meldung ist, kann dies die folgenden Ursachen haben. Gilt für lokale Zustandsdateien und Remotezustandsdateien.
Ursache: Es gibt zwei mögliche Ursachen für diesen Fehler. Die erste besteht darin, dass bereits ein Terraform-Befehl für die Zustandsdatei ausgeführt wird und eine Sperre für die Datei erzwungen wurde, damit keine Probleme auftreten. Die zweite mögliche Ursache ist, dass eine Verbindungsunterbrechung zwischen der Zustandsdatei und der CLI aufgetreten ist, als Befehle ausgeführt wurden. Diese Unterbrechung tritt am häufigsten bei der Verwendung von Remotezustandsdateien auf.
Lösung: Vergewissern Sie sich zunächst, dass noch keine Befehle für die Zustandsdatei ausgeführt werden. Wenn Sie mit einer lokalen Zustandsdatei arbeiten, überprüfen Sie, ob Sie über Terminals verfügen, auf denen Befehle ausgeführt werden. Überprüfen Sie alternativ Ihre Bereitstellungspipelines, um festzustellen, ob die Zustandsdatei möglicherweise von ausgeführten Prozessen verwendet wird. Wird das Problem dadurch nicht behoben, ist unter Umständen der zweite Punkt die Ursache für den Fehler. Für eine Remotezustandsdatei, die in einem Azure Storage-Kontocontainer gespeichert ist, können Sie die Datei suchen und die Schaltfläche Lease abbrechen verwenden.
Wenn Sie andere Back-Ends zum Speichern Ihrer Zustandsdatei verwenden, finden Sie entsprechende Empfehlungen in der HashiCorp-Dokumentation.
VPN-Fehler
Informationen zum Beheben von VPN-Fehlern finden Sie im Artikel Behandeln von Problemen mit einer VPN-Hybridverbindung.