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.
Terraform ermöglicht die Definition, Vorschau und Bereitstellung der Cloudinfrastruktur. Mithilfe von Terraform erstellen Sie Konfigurationsdateien mit der HCL-Syntax. Mit der HCL-Syntax können Sie den Cloudanbieter ( z. B. Azure ) und die Elemente angeben, aus denen Ihre Cloudinfrastruktur besteht. Nach der Erstellung Ihrer Konfigurationsdateien erstellen Sie einen Ausführungsplan, mit dem Sie eine Vorschau Ihrer Infrastrukturänderungen anzeigen können, bevor diese bereitgestellt werden. Nachdem Sie die Änderungen überprüft haben, wenden Sie den Ausführungsplan an, um die Infrastruktur bereitzustellen.
Es gibt mehrere Tools und Workflows für den Wechsel zwischen Azure Infrastruktur und Terraform oder zwischen azureRM- und AzAPI Terraform-Anbietern. Der richtige Weg hängt von Ihrem Ausgangspunkt und Ziel ab.
Die wichtigsten Tools umfassen aztfexport (exportiert vorhandene Azure Ressourcen in Terraform-Konfiguration und -Zustand) und aztfmigrate (konvertiert Terraform-Konfigurationen zwischen den AzureRM- und AzAPI-Anbietern).
Verwenden Sie die folgende Tabelle, um zu ermitteln, welcher Abschnitt für Ihr Szenario gilt:
| Startpunkt | Goal | Empfohlener Pfad |
|---|---|---|
| Vorhandene Azure Ressourcen (noch nicht in Terraform) | Unter Terraform-Management bringen |
Exportieren mit aztfexport |
| ARM-Vorlage oder Azure-Portalressourcen-JSON | Neue AzAPI Terraform-Ressourcen erstellen | Als AzAPI in VS Code einfügen |
| Vorhandene Terraform-Konfiguration mit AzAPI | Migrieren zum AzureRM-Anbieter |
Migrieren mit aztfmigrate |
| Vorhandene Terraform-Konfiguration mit AzureRM | Migrieren zum AzAPI-Anbieter |
Migrieren mit aztfmigrate oder der VS Code-Erweiterung |
Anleitungen dazu, welcher Anbieter primär für neue Projekte sein sollte, finden Sie unter Wählen zwischen AzureRM und AzAPI Terraform-Anbietern.
Exportieren vorhandener Azure Ressourcen nach Terraform
Azure Export for Terraform (aztfexport) bringt vorhandene Azure Ressourcen unter Terraform-Management, indem die HCL-Konfiguration und der Terraform-Zustand generiert werden. Es unterstützt sowohl AzureRM als auch AzAPI als Ausgabeziele.
Verwenden Sie diesen Pfad, wenn: Sie vorhandene Azure-Ressourcen haben, die noch nicht von Terraform verwaltet werden und diese importieren möchten.
Exportmethoden
Wählen Sie die Exportmethode aus, die am besten zu Ihrem Workflow passt:
-
CLI: Verwenden Sie die
aztfexportBinärdatei direkt. Informationen zur Installations- und CLI-Befehlsreferenz finden Sie unter Azure Export for Terraform overview. - VS Codeerweiterung: Verwenden Sie die Erweiterung Microsoft Terraform VS Code für einen geführten Export mit Ressourcenfilterung und Anbieterauswahl.
- Azure portal: Exportieren Sie Ressourcen direkt aus dem Azure Portal ohne lokale Tools. Weitere Informationen finden Sie unter Exportieren von Ressourcen im Azure Portal.
Ausführliche Anleitungen für den Schnellstart und erweiterte Szenarien finden Sie unter:
- Exportieren Ihrer ersten Ressourcen
- Exportieren von Ressourcen in HCL-Code
- Erweiterte Exportszenarien
Exportieren von Ressourcen im Azure-Portal
Mit der Azure Portalintegration können Sie Ressourcen exportieren, ohne zusätzliche Tools zu installieren:
- Navigieren Sie im Azure-Portal zur Ressource.
- Suchen Sie die Option "Nach Terraform exportieren " (genaue Position hängt vom Ressourcentyp ab).
- Folgen Sie den Anweisungen zum Auswählen des Ausgabeanbieters (AzureRM oder AzAPI) und des Exportbereichs.
- Laden Sie die generierte Terraform-Konfigurations- und Zustandsdatei herunter.
- Überprüfen Sie die Ausgabe, und führen Sie die Ausführung
terraform planaus, um zu bestätigen, dass keine Abweichung vorhanden ist.
Eine schrittweise Anleitung finden Sie unter Exportieren einer Ressource im Azure Portal.
Erstellen von AzAPI-Ressourcen aus ARM JSON
Wenn Sie über eine ARM-Vorlage, Azure Portalressourcendefinition oder unformatierte REST-API-Antwort verfügen und einen entsprechenden azapi_resource-Block generieren möchten, kann die Microsoft Terraform VS Code-Erweiterung sie automatisch konvertieren.
Verwenden Sie diesen Pfad, wenn: Sie erstellen neue AzAPI-Ressourcen und verfügen über eine vorhandene JSON-Definition (ARM-Vorlage, Portalexport, API-Antwort) als Ausgangspunkt.
Die Erweiterung konvertiert die JSON-Eigenschaften in das body Attributformat und leitet die type und api-versionab. Ausführliche Schritte und Beispiele finden Sie unter Einfügen von ARM-JSON als AzAPI-Konfiguration im VS Code-Erweiterungshandbuch.
Note
Dieses Feature eignet sich am besten für einzelne Ressourcenobjekte. Vollständige ARM-Vorlagen mit mehreren Ressourcen, Parametern und Variablen erfordern möglicherweise eine manuelle Bereinigung nach der Konvertierung.
Migrieren von AzAPI-Ressourcen zu AzureRM mit aztfmigrate
aztfmigrate migriert vorhandene azapi_resource-Blöcke in einer Terraform-Konfiguration zu ihren entsprechenden ressourcentypen azurerm_*. Sie aktualisiert sowohl die HCL-Dateien (HashiCorp Configuration Language) als auch die Terraform-Zustandsdatei, ohne die zugrunde liegenden Azure Ressourcen neu zu erstellen.
Verwenden Sie diesen Pfad, wenn: Ihr Team Ressourcen mit AzAPI verwaltet und eine Ressource, die Sie verwenden, inzwischen mit vollständiger Unterstützung zum AzureRM-Anbieter hinzugefügt wurde und Sie auf AzureRM konsolidieren möchten.
Voraussetzungen
- Eine vorhandene Terraform-Konfiguration mit
azapi_resourceBlöcken, die Sie migrieren möchten. - Das
aztfmigrateBinärdatei ist installiert und in Ihrem PATH. Laden Sie von der Seite aztfmigrate releases herunter.
- Azure-Abonnement: Wenn Sie nicht über ein Azure-Abonnement verfügen, erstellen Sie ein kostenloses Konto , bevor Sie beginnen.
Planung der Migration
Navigieren Sie zu dem Verzeichnis, das Ihre Terraform-Konfiguration enthält.
Authentifizieren bei Azure:
az login az account set --subscription <subscription_id>Führen Sie diese Ausführung
aztfmigrate planaus, um zu ermitteln, welche Ressourcen zu AzureRM migriert werden können:aztfmigrate planDie Ausgabe listet jeden
azapi_resourceBlock auf, der angibt, ob er einem unterstützten AzureRM-Ressourcentyp zugeordnet ist. Ressourcen, die Vorschau-API-Versionen oder Ressourcentypen verwenden, die noch nicht in AzureRM vorhanden sind, werden als nicht migrierend aufgeführt und bleiben alsazapi_resourceBlöcke.Überprüfen Sie die Planausgabe, und bestätigen Sie, dass die Zuordnungen korrekt sind, bevor Sie fortfahren.
Durchführen der Migration
Führen Sie
aztfmigrate migrateaus, um die Änderungen anzuwenden.aztfmigrate migrateaztfmigrate:- Ersetzt die
azapi_resourceBlöcke in Ihren.tfDateien durch die entsprechendenazurerm_*Blöcke. - Aktualisiert die Statusdatei, um die neuen Ressourcenadressen und das neue Schema widerzuspiegeln.
- Ersetzt die
Initialisieren Sie Terraform, um alle aktualisierten Anbieterversionen herunterzuladen:
Führen Sie terraform init aus, um die Terraform-Bereitstellung zu initialisieren. Dieser Befehl lädt den Azure-Anbieter herunter, der zum Verwalten Ihrer Azure-Ressourcen erforderlich ist.
terraform init -upgradeWichtige Punkte:
- Der Parameter
-upgradeaktualisiert die erforderlichen Anbieter-Plug-Ins auf die neueste Version, die den Versionseinschränkungen der Konfiguration entspricht.
- Der Parameter
Führen Sie
terraform planaus, um zu überprüfen, dass Konfiguration und Zustand mit der bereitgestellten Infrastruktur übereinstimmen.terraform planDer Plan sollte keine Änderungen anzeigen. Wenn Unterschiede angezeigt werden, überprüfen Sie den Diff, und passen Sie die migrierte Konfiguration vor der Anwendung an.
Bereinigung nach der Migration
Nach der Bestätigung eines sauberen Plans:
- Entfernen Sie den Anbieter
azapiausrequired_providers, wenn keine AzAPI-Ressourcenblöcke mehr vorhanden sind. - Aktualisieren Sie alle
outputoderlocalsBlöcke, die auf AzAPI-spezifische Attribute verweisen. - Führen Sie die Ausführung
terraform applyaus, um legitime Drift anzuwenden, z. B. normalisierte Standardwerte, die von AzureRM eingeführt wurden.
Migrieren von AzureRM-Ressourcen zu AzAPI
Verwenden Sie zum Konvertieren einer vorhandenen AzureRM-Konfiguration zur Verwendung von AzAPI die Erweiterung Microsoft Terraform VS Code, die Tools zum Generieren von AzAPI-Entsprechungen für azurerm_*-Ressourcenblöcke enthält.
Verwenden Sie diesen Pfad, wenn Sie ein Terraform-Modul oder eine Konfiguration von AzureRM in AzAPI konvertieren und Editorunterstützung bei der Konvertierung benötigen.
Schrittweise Anleitungen, Codeaktionen und Statusmigrationsanleitungen finden Sie im Vs Code-Erweiterungshandbuch.
Important
Die VS Code-Erweiterung unterstützt nur die Erstellung von HCL – die Terraform-Zustandsdatei wird nicht aktualisiert. Das Ersetzen von azurerm_* Blöcken durch azapi_resource Blöcke ohne Aktualisierungszustand bewirkt, dass Terraform die Ressourcen als gelöscht behandelt und neu erstellt.
Verwenden Sie nach der Konvertierung von HCL für jede Ressource terraform state mv oder importieren Sie erneut mithilfe des import Block. Führen Sie nach jeder Zustandsänderung aus terraform plan , um zu bestätigen, dass keine unbeabsichtigte erneute Erstellung auftritt.
Wann nicht migriert werden soll
Erwägen Sie, Ressourcen dort zu belassen, wo sie sind, wenn:
- Die Ressource befindet sich in der Vorschau oder verwendet eine Vorschau-API-Version, die noch nicht in AzureRM enthalten ist– halten Sie sie in AzAPI.
- Ihr Team verwendet AzAPI als primären Anbieter – fügen Sie neue Nur AzureRM-Ressourcen mit AzAPI hinzu, anstatt einen zweiten primären Anbieter einzuführen.
- Die AzureRM-Darstellung führt zu unerwünschten Planabweichungen von normalisierten Standardwerten – bewerten die Auswirkungen vor der Migration.
- Die Komplexität der Zustandsmigration ist hoch – bei großen Konfigurationen wird bewertet, ob das betriebsbedingte Risiko der Zustandsmanipulation den Vorteil des Wechselanbieters überwiegt.