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 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 mit der Objekt-ID ist nicht zum Ausführen der Aktion 'Microsoft.HybridConnectivity/endpoints/listCredentials/action' für den Bereich '/subscriptions//resourceGroups//providers/Microsoft.HybridCompute/machines//providers/Microsoft.HybridConnectivity/endpoints/default' autorisiert, oder der Bereich ist ungültig. Wenn der Zugriff erst vor Kurzem gewährt wurde, sollten Sie Ihre Anmeldeinformationen aktualisieren.)

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.

Screenshot that shows the Azure Storage container Break lease button.

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.