Verwenden Sie die "Microsoft Terraform Visual Studio Code"-Erweiterung

Die Microsoft Terraform Visual Studio Code Erweiterung bietet Erstellungs-, Validierungs- und Migrationstools für Terraform-Konfigurationen auf Azure. Es umfasst Sprachintelligenz für AzureRM- und AzAPI-Anbieter, Integration mit Azure Export für Terraform (aztfexport) und Unterstützung für die Vorabvalidierung.

In diesem Artikel werden die Features behandelt, die für die AzAPI-Erstellung und die Anbietermigration am relevantesten sind. Eine Anleitung zum Installieren der Erweiterung und Ausführen grundlegender Terraform-Befehle finden Sie unter Installieren der Microsoft Terraform Visual Studio Code Erweiterung.

Voraussetzungen

Sprachfeatures des AzAPI-Anbieters

Verwenden Sie dies, wenn Sie Blöcke erstellen oder bearbeiten azapi_resource und Autovervollständigung, Überprüfung und Inlinedokumentation benötigen.

Die Erweiterung bietet umfassende Sprachintelligenz für den AzAPI-Anbieter in .tf-Dateien, die vom AzAPI Language Server unterstützt werden.

Ressourcentyp und API-Versionsabschluss

Wenn Sie type = " innerhalb eines azapi_resource, azapi_update_resource oder azapi_data_plane_resource-Blocks eingeben, zeigt die Erweiterung eine Liste aller verfügbaren Azure Ressourcentypen und API-Versionen an:

Screenshot mit AutoVervollständigen für verfügbare AzAPI-Ressourcentypen und API-Versionen.

Eigenschaftsname und Wertabschluss

Innerhalb des body Attributs schlägt die Erweiterung zulässige Eigenschaftsnamen und gültige Werte basierend auf dem ausgewählten Ressourcentyp und der API-Version vor:

Screenshot mit Autovervollständigung für zulässige Eigenschaftsnamen und -werte in einem azapi_resource Ressourcenkörper.

Bei Eigenschaften, die diskriminierte Objekte (wie z.B. kind-basierte Typhierarchien) verwenden, füllt die Erweiterung die erforderlichen Untereigenschaften automatisch aus.

Hover-Dokumentation

Wenn der Mauszeiger über einen Ressourcentyp, Eigenschaftennamen oder Eigenschaftswert gehalten wird, wird die Inlinedokumentation angezeigt, die aus dem Azure-Ressourcenschema stammt.

Screenshot der Hover-Dokumentation für eine AzAPI-Eigenschaft.

Schemavalidierung

Die Erweiterung unterstreicht Schemafehler während der Eingabe – z. B. nicht erkannte Eigenschaftsnamen, falsche Werttypen oder fehlende erforderliche Eigenschaften:

Screenshot der Inline-Schema-Fehlerhervorhebung in einem azapi_resource Body.

Arm-JSON als AzAPI-Konfiguration einfügen

Wenn Sie über eine Azure-Portalressourcendefinition, ein ARM-Vorlagenressourcenobjekt oder eine unformatierte REST-API-Antwort verfügen, können Sie diese direkt in eine Datei .tf einfügen, und die Erweiterung konvertiert sie in einen azapi_resource-Block.

Gehen Sie folgendermaßen vor: Sie erstellen eine neue AzAPI-Ressource und verfügen über eine vorhandene JSON-Definition für den Anfang.

  1. Kopieren Sie die JSON- oder ARM-Ressourcenvorlage in die Zwischenablage.
  2. Öffnen Sie eine .tf Datei und platzieren Sie den Cursor an der Einfügeposition.
  3. Einfügen (Ctrl+V auf Windows/Linux, Cmd+V unter macOS). Die Erweiterung erkennt das JSON-Format und konvertiert es in azapi_resource HCL.

Für ARM-Vorlagen, die mehrere Ressourcen, Parameter und Variablen enthalten, ist nach der Konvertierung in der Regel eine manuelle Bereinigung erforderlich. Überprüfen Sie die generierten type, body und parent_id, bevor Sie diese anwenden.

Exportieren vorhandener Azure Ressourcen als Terraform

Die Erweiterung integriert sich mit aztfexport, um vorhandene Azure-Ressourcen in eine Terraform-Konfiguration und -Status zu exportieren, wobei AzureRM oder AzAPI als Ausgabedienstanbieter ausgewählt werden kann.

Verwenden Sie dies, wenn: Sie vorhandene Azure-Ressourcen haben, die nicht von Terraform verwaltet werden, und Sie diese unter die Verwaltung von Terraform bringen möchten.

  1. Öffnen Sie die Befehlspalette (Ctrl+Shift+P unter Windows/Linux, Cmd+Shift+P unter macOS).
  2. Suchen und wählen Sie Microsoft Terraform: Azure-Ressource als Terraform exportieren.
  3. Folgen Sie den Anweisungen, um Ihr Abonnement, Ihre Ressourcengruppe und einzelne Ressourcen auszuwählen.
  4. Wählen Sie azurerm oder azapi als Ausgabeanbieter aus.
  5. Die Erweiterung generiert die Terraform-Konfiguration und öffnet sie in einem neuen Editor-Tab.

Sie können Ressourcen auch direkt aus dem Azure Portal exportieren, ohne Tools zu installieren. Siehe Exportieren einer Ressource im Azure Portal. Eine vollständige CLI-Verwendung von aztfexport finden Sie in der Übersicht über Azure Export for Terraform.

Migrieren von AzureRM-Ressourcen zu AzAPI

Die Erweiterung kann AzAPI-Entsprechungen für azurerm_*-Ressourcenblöcke innerhalb eines Terraform-Moduls mithilfe von Anleitungen aus dem Migrationshandbuch azapi-lsp generieren.

Verwenden Sie dies, wenn: Sie ein Modul aus AzureRM in AzAPI konvertieren und Toolunterstützung wünschen, um die entsprechenden azapi_resource Blöcke zu erstellen.

  1. Öffnen Sie die .tf Datei mit den azurerm_* Ressourcenblöcken.
  2. Öffnen Sie die Befehlspalette, und suchen Sie nach dem Befehl "Migrieren zu AzAPI", oder verwenden Sie die In-Editor-Codeaktion, wenn Sie auf einen azurerm_* Ressourcenblock zeigen.
  3. Prüfen Sie das generierte Ergebnis. Überprüfen Sie die type, api-version und body-Struktur anhand der Registrierungsdokumentation AzAPI-Anbieter bevor Sie die ursprünglichen Blöcke ersetzen.

Important

Dieses Feature unterstützt nur die HCL-Dokumenterstellung – die Terraform-Zustandsdatei wird nicht aktualisiert. Wenn Sie azurerm_*-Blöcke durch azapi_resource-Blöcke ersetzen, ohne den Zustand zu aktualisieren, behandelt Terraform die AzureRM-Ressourcen als gelöscht und die AzAPI-Ressourcen als neu, wodurch die zugrunde liegenden Azure-Ressourcen neu erstellt werden.

Um den Zustand zusammen mit der Konfiguration zu migrieren, verwenden Sie terraform state mv nach der Konvertierung für jede Ressource oder fügen Sie Blöcke hinzu import . Führen Sie nach jeder Zustandsänderung aus terraform plan , um zu bestätigen, dass keine unbeabsichtigte erneute Erstellung auftritt.

Eine vollständige Anleitung für alle Migrationsrichtungen (einschließlich aztfmigrate für AzAPI → AzureRM) finden Sie unter Migrationspfade zwischen Azure-, AzureRM- und AzAPI Terraform-Anbietern.

Preflight-Validierung

Die Erweiterung integriert sich mit dem Tool aztfpreflight, um Ihren Terraform-Plan vor der Bereitstellung gegen Azure-Ressourcenkontrollen zu validieren.

Verwenden Sie folgendes: Sie möchten Konfigurationsfehler zur Planzeit erfassen, ohne Ressourcen bereitzustellen.

  1. Stellen Sie sicher, dass Sie bei az login angemeldet sind.
  2. Öffnen Sie die Befehlspalette, und wählen Sie Microsoft Terraform: Preflight Validation aus.
  3. Wählen Sie eine vorhandene Plandatei aus, oder lassen Sie die Erweiterung eine neue Datei generieren.
  4. Die Erweiterung wird gegen den Plan ausgeführt aztfpreflight und zeigt ergebnisse im Terminal an.

Preflight erfasst Fehler wie ungültige Eigenschaftswerte, Kontingentverletzungen und Richtliniencompliancefehler, bevor Ressourcen erstellt oder geändert werden. Ausführliche Informationen zum direkten Aktivieren von Preflight in der AzAPI-Anbieterkonfiguration finden Sie unter Aktivieren der Preflight-Validierung im AzAPI Terraform-Anbieter.

Generieren erforderlicher Berechtigungen

Verwenden Sie dies, wenn: Sie müssen die minimalen IAM-Rollenzuweisungen bestimmen, die für die Bereitstellung Ihrer Terraform-Ressourcen erforderlich sind.

Bei azurerm_* Ressourcenblöcken kann die Erweiterung die minimalen IAM-Rollenzuweisungen generieren, die zum Bereitstellen der Ressourcen erforderlich sind.

  1. Wählen Sie einen oder azurerm_* mehrere Ressourcenblöcke in einer .tf Datei aus.
  2. Klicken Sie auf das angezeigte Glühbirnensymbol, und wählen Sie die Option aus, um erforderliche Berechtigungen zu generieren.
  3. Die Erweiterung generiert die Berechtigungsdefinitionen und öffnet sie auf einer neuen Editor-Registerkarte.

Stellen Sie sicher, dass Sie sich vor der Verwendung dieser Funktion mit az login authentifiziert haben.

Terraform-Befehlspalette

Alle Standardmäßigen Terraform-Befehle sind über die Befehlspalette verfügbar und werden im integrierten Terminal ausgeführt:

Befehl Beschreibung
Microsoft Terraform: init Initialisiert das Terraform-Arbeitsverzeichnis und lädt Anbieter-Plug-Ins herunter.
Microsoft Terraform: Plan Erstellt einen Terraform-Ausführungsplan.
Microsoft Terraform: anwenden Wendet den Terraform-Ausführungsplan an.
Microsoft Terraform: validate Überprüft die Konfigurationsdateien.
Microsoft Terraform: refresh Aktualisiert die Statusdatei mit dem realen Zustand der Ressourcen.
Microsoft Terraform: zerstören Zerstört alle ressourcen, die von der Konfiguration verwaltet werden.
Microsoft Terraform: visualisieren Generiert eine Diagrammvisualisierung des Moduls und speichert es als graph.png.
Microsoft Terraform: Exportieren Azure Ressource als Terraform Exportiert vorhandene Azure Ressourcen als Terraform-Konfiguration mit aztfexport.
Microsoft Terraform: Vorflugvalidierung Führt die Preflight-Überprüfung für einen Terraform-Plan mithilfe von aztfpreflight.

Nächste Schritte

Weiterführende Lektüre