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

Der Anbieterregistrierungsstatus kann nicht aufgeführt werden.

Fehlermeldung:

Fehler: Der Status der Anbieterregistrierung kann nicht aufgelistet werden, es ist möglich, dass dies auf ungültige Anmeldeinformationen zurückzuführen ist oder der Dienstprinzipal keine Berechtigung zum Verwenden der Resource Manager-API hat, Azure-Fehler: Ressourcen. ProvidersClient#List: Fehler beim Reagieren auf Anforderung: StatusCode=403 -- Originalfehler: autorest/azure: Service hat einen Fehler zurückgegeben. Status=403 Code="AuthorizationFailed" Message="Der Client '00000000-00000-00000-0000000000000000000000000000000000000000000000000000000000000000000000000-00000000000000 hat keine Berechtigung, Aktion "Microsoft.Resources/abonnements/providers/read" im Bereich "/abonnements/00000000-000000-00000-0000000000000000000000000000000000000000000000000000000000000000000000" auszuführen. Wenn der Zugriff kürzlich gewährt wurde, aktualisieren Sie Bitte Ihre Anmeldeinformationen."

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 Statussperre

Fehlermeldung:

Fehler: Fehler beim Abrufen der Statussperre; Fehlermeldung: 2 Fehler:
* Status-Blob ist bereits gesperrt
* Blob-Metadaten "terraformlockid" war leer
Terraform erhält eine Zustandssperre, um den Zustand zu schützen, der von mehreren Benutzern gleichzeitig geschrieben wird. Bitte beheben Sie das oben genannte Problem, und versuchen Sie es erneut. Für die meisten Befehle können Sie die Sperrung 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 Meldung ist, die angezeigt wird, kann die folgenden Ursachen gelten. Gilt für lokale und Remotestatusdateien.

Ursache: Für diesen Fehler gibt es zwei mögliche Ursachen. Das erste ist, dass ein Terraform-Befehl bereits gegen die Zustandsdatei ausgeführt wird und eine Sperrung der Datei erzwungen hat, sodass nichts unterbrochen wird. Die zweite mögliche Ursache besteht darin, dass eine Verbindungsunterbrechung zwischen der Statusdatei und der CLI aufgetreten ist, wenn Befehle ausgeführt wurden. Diese Unterbrechung tritt am häufigsten auf, wenn Sie Remotestatusdateien verwenden.

Auflösung: Stellen Sie zunächst sicher, dass Sie keine Befehle für die Statusdatei ausführen. Wenn Sie mit einer lokalen Zustandsdatei arbeiten, überprüfen Sie, ob Terminals mit Befehlen ausgeführt werden. Überprüfen Sie alternativ Ihre Bereitstellungspipelinen, um zu sehen, ob etwas ausgeführt wird, das die Statusdatei verwendet. Wenn das Problem nicht behoben wird, ist es möglich, dass die zweite Ursache den Fehler ausgelöst hat. Für eine Remotestatusdatei, die in einem Azure Storage Kontocontainer gespeichert ist, können Sie die Datei suchen und die Schaltfläche "Lease unterbrechen" verwenden.

Screenshot that shows the Azure Storage container Break lease button.

Wenn Sie andere Back-Ends verwenden, um Ihre Statusdatei zu speichern, finden Sie in der HashiCorp-Dokumentation.

VPN-Fehler

Informationen zum Beheben von VPN-Fehlern finden Sie im Artikel Behandeln von Problemen mit einer VPN-Hybridverbindung.