Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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
- Visual Studio Code
- Die Microsoft Terraform Erweiterung installiert
- Terraform installiert und in Ihrem PATH verfügbar
- Die Azure CLI installiert und authentifiziert (
az login)
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:
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:
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.
Schemavalidierung
Die Erweiterung unterstreicht Schemafehler während der Eingabe – z. B. nicht erkannte Eigenschaftsnamen, falsche Werttypen oder fehlende erforderliche Eigenschaften:
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.
- Kopieren Sie die JSON- oder ARM-Ressourcenvorlage in die Zwischenablage.
- Öffnen Sie eine
.tfDatei und platzieren Sie den Cursor an der Einfügeposition. - Einfügen (
Ctrl+Vauf Windows/Linux,Cmd+Vunter macOS). Die Erweiterung erkennt das JSON-Format und konvertiert es inazapi_resourceHCL.
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.
- Öffnen Sie die Befehlspalette (
Ctrl+Shift+Punter Windows/Linux,Cmd+Shift+Punter macOS). - Suchen und wählen Sie Microsoft Terraform: Azure-Ressource als Terraform exportieren.
- Folgen Sie den Anweisungen, um Ihr Abonnement, Ihre Ressourcengruppe und einzelne Ressourcen auszuwählen.
- Wählen Sie azurerm oder azapi als Ausgabeanbieter aus.
- 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.
- Öffnen Sie die
.tfDatei mit denazurerm_*Ressourcenblöcken. - Ö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. - Prüfen Sie das generierte Ergebnis. Überprüfen Sie die
type,api-versionundbody-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.
- Stellen Sie sicher, dass Sie bei
az loginangemeldet sind. - Öffnen Sie die Befehlspalette, und wählen Sie Microsoft Terraform: Preflight Validation aus.
- Wählen Sie eine vorhandene Plandatei aus, oder lassen Sie die Erweiterung eine neue Datei generieren.
- Die Erweiterung wird gegen den Plan ausgeführt
aztfpreflightund 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.
- Wählen Sie einen oder
azurerm_*mehrere Ressourcenblöcke in einer.tfDatei aus. - Klicken Sie auf das angezeigte Glühbirnensymbol, und wählen Sie die Option aus, um erforderliche Berechtigungen zu generieren.
- 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. |