Freigeben über


Funktionsweise von Azure Export für Terraform

In diesem Artikel werden Sie in den Azure Export für Terraform-Workflows vorgestellt. In diesem Artikel erfahren Sie mehr über die Best Practice-Anleitungen des Tools, aktuelle Einschränkungen und wie Sie diese Einschränkungen mindern.

Interaktiver Modus

Standardmäßig wird Azure Export für Terraform im interaktiven Modus ausgeführt. Wenn Sie im interaktiven Modus ausgeführt werden, werden die verfügbaren Tastenkombinationen am unteren Rand der Anzeige aufgeführt.

Task Tastenkombinationen
Navigation
Wählen Sie das vorherige Element in der Ressourcenliste aus. ^ -oder- k
Wählen Sie das nächste Element in der Ressourcenliste aus. (') -oder- j
Wechseln zur vorherigen Seite in der Ressourcenliste. ← -oder- h -oder- Bild-Aufwärts
Wechseln zur nächsten Seite in der Ressourcenliste. → -or- l -or- Page Down
Springen Sie zum Anfang der Ressourcenliste. g -oder- Start
Springen Sie zum Ende der Ressourcenliste. G -oder- Ende
Auswählen der zu überspringenden Ressourcen
Ressource überspringen (oder unskip, wenn als "Überspringen" gekennzeichnet) Delete
Filtervorgänge
Definieren Sie einen Filter nach Text in der Ressourcenliste. /
Löschen eines aktuellen Filters ESC
Speichervorgänge
Speichern Sie eine Zuordnungsdatei der Ressourcenliste. Die Ausgabedatei wird durch überspringen (aber nicht filtern) beeinflusst. s
Exportieren Sie Ressourcen in den Zustand (falls --hcl-only nicht angegeben), und generiert die Konfiguration. a
Benutzerfreundlichkeit
Zeigt Empfehlungen für die aktuelle Ressource an. r
Fehler beim Ressourcenexport anzeigen (falls vorhanden). e
Hilfe anzeigen. ?
Beenden
Beenden Sie den interaktiven Modus. Q

Für jede Ressource versucht Azure Export für Terraform, den entsprechenden Terraform-Ressourcentyp zu erkennen. Wenn eine Übereinstimmung gefunden wird, wird die Zeile mit dem folgenden Indikator markiert: 💡

Wenn die Ressource nicht aufgelöst werden kann, müssen Sie die Terraform-Ressourcenadresse in der folgenden Form eingeben: <resource type>.<resource name> Verweist beispielsweise auf einen Terraform-Ressourcentyp von azurerm_linux_virtual_machine, während sich der test Name für den virtuellen Computer bezieht, azurerm_linux_virtual_machine.test der in den Konfigurationsdateien verwendet wird.

Um die verfügbaren Ressourcentypen für die ausgewählte Ressource anzuzeigen, drücken Sie R.

In einigen Fällen gibt es Azure-Ressourcen, die keine entsprechenden Terraform-Ressourcen aufweisen, z. B. wenn die Ressource terraform-Unterstützung fehlt. Einige Ressourcen können auch als Nebeneffekt der Bereitstellung einer anderen Ressource erstellt werden , z. B. die Betriebssystemdatenträgerressource, die beim Bereitstellen eines virtuellen Computers erstellt wird. In diesen Fällen können Sie die Ressourcen überspringen, ohne etwas zuzuweisen.

Nachdem Sie alle zu importierenden Ressourcen durchlaufen haben, drücken Sie w , um mit der Generierung der Terraform-Konfiguration zu beginnen und (wenn --hcl-only nicht ausgewählt) in den Terraform-Zustand zu importieren.

Nicht interaktiver Modus

Standardmäßig wird Azure Export für Terraform im interaktiven Modus ausgeführt. Um anzugeben, dass das Tool im nicht interaktiven Modus ausgeführt werden soll, geben Sie das --non-interactive Flag an.

aztfexport [command] --non-interactive <scope>

Wichtig

Wenn das Verzeichnis, in dem Sie Azure Export für Terraform ausführen, nicht leer ist, müssen Sie die --overwrite Kennzeichnung hinzufügen, um die --hcl-only Kennzeichnung zu verwenden.

Bewährte Methoden für Kernworkflows

Auf grundlegender Ebene sieht jeder Benutzer von Azure Export eine Entscheidung zwischen zwei Optionen vor:

In den folgenden Unterabschnitten finden Sie Anleitungen dazu, welche Option auf der Grundlage des Szenarios verwendet werden soll.

Verwalten der Infrastruktur

Möglicherweise müssen Sie nicht in den Zustand exportieren, wenn Sie die konfigurierten Ressourcen nicht auf die gewünschte Weise innerhalb Ihrer Umgebung überprüft haben.

Wenn Sie sicher sind, dass Sie den Satz von Ressourcen in Terraform mit terraform init plan apply Workflows verwalten möchten, ist das Exportieren in den Zustand von wesentlicher Bedeutung.

Wenn Sie nicht sicher sind, dass Sie die Ressourcen noch verwalten möchten, wird das Übergeben des --hcl-only Flags empfohlen.

Vorhandene Infrastruktur

In Szenarien, in denen Sie in vorhandene Terraform-Umgebungen exportieren, kann es hilfreich sein, sich als terraform-Planäquivalentvor allem vor dem Anfügen an vorhandene Umgebungen zu vorstellen--hcl-only.

Der terraform apply Befehl entspricht dem Exportieren von Ressourcen , während deren Konfiguration mit dem bereits vorhandenen Zustand verknüpft ist. In diesem Szenario spart die Verwendung einer Zuordnungsdatei Die Laufzeit für die Liste und Zuordnung von Ressourcen.

Ermitteln der Infrastruktur

Wenn Sie nicht sicher sind, welche Ressourcen in einer Umgebung vorhanden sind, können Sie überprüfen, indem Sie das --generate-mapping-file Flag angeben. Weitere Informationen zu diesem Thema finden Sie unter Erkunden der benutzerdefinierten Ressourcenauswahl und Benennung mithilfe von Azure Export für Terraform.

Begrenzungen

Azure Export for Terraform ist ein komplexes Tool, das versucht, die Azure-Infrastruktur in Terraform-Code und -Zustand umzuwandeln. Die aktuellen bekannten Einschränkungen werden in den folgenden Unterabschnitten erläutert.

Schreibgeschützte Eigenschaften

Bestimmte Eigenschaften innerhalb von AzureRM sind schreibgeschützt und nicht im generierten Code enthalten, den Azure Export für Terraform erstellt. Das Problem wird behoben, indem die Eigenschaft nach dem Export in HCL-Code definiert wird.

Eigenschaftenübergreifende Einschränkungen

Der AzureRM-Anbieter kann zwei Eigenschaften festlegen, die miteinander in Konflikt stehen. Wenn Azure Export für Terraform widersprüchliche Eigenschaften liest, kann es beide Eigenschaften auf denselben Wert festlegen, obwohl der Benutzer nur eine konfiguriert hat. Weitere Komplikationen ergeben sich, wenn mehrere eigenschaftsübergreifende Einschränkungen innerhalb derselben generierten Konfiguration vorhanden sind. Sie müssen wissen, wo eigenschaftsübergreifende Konflikte in Ihrer Konfiguration vorhanden sind, um dieses Problem zu beheben.

Infrastruktur außerhalb des Ressourcenbereichs

Wenn Sie Azure Export für Terraform zum Ziel von Ressourcenbereichen verwenden, sind ressourcenbezogene Ressourcen möglicherweise außerhalb des angegebenen Bereichs vorhanden. Ein Beispiel ist eine Rollenzuweisung. Der Benutzer muss Ressourcen identifizieren, die sich außerhalb des Gültigkeitsbereichs befinden.

Schreibgeschützte Eigenschaften

Azure Export kann keine schreibgeschützten Eigenschaften (z. B. Kennwörter) innerhalb der Konfiguration generieren. Sie müssen die schreibgeschützten Eigenschaften kennen und in einer Konfiguration definieren, um neue Ressourcengruppen zu erstellen.

Ändern von Code zur Übereinstimmung mit Codierungsstandards

Es gibt einige erforderliche Vorgänge, wenn der Benutzer seinen Code ändern möchte, um die Codierungsstandards einzuhalten. Diese Schritte wären nur erforderlich, wenn der Benutzer den Code in Nicht-Posteingangsumgebungen verwenden möchte.

Eigenschaftendefinierte Ressourcen

Bestimmte Ressourcen in Azure können entweder als Eigenschaft in einer übergeordneten Terraform-Ressource oder als einzelne Terraform-Ressource definiert werden. Ein Beispiel ist ein Subnetz. Azure Export für Terraform definiert die Ressource als einzelne Ressource, aber es empfiehlt sich, Ihre vorhandene Codierungskonfiguration abzugleichen.

Explizite Abhängigkeiten

Azure Export für Terraform kann derzeit nur explizite Abhängigkeiten deklarieren. Sie müssen die Zuordnung der Beziehungen zwischen Ressourcen kennen, um den Code umzugestalten, um alle erforderlichen impliziten Abhängigkeiten einzuschließen.

Hartcodierte Werte

Azure Export für Terraform generiert derzeit hartcodierte Zeichenfolgen. Als bewährte Methode sollten Sie diese Werte auf Variablen umgestalten. Wenn Sie auch das --full-properties Flag verwenden, um alle Eigenschaften verfügbar zu machen, können einige vertrauliche Informationen (z. B. geheime Schlüssel) in der generierten Konfiguration angezeigt werden. Verwenden Sie empfohlene Methoden, um die Sichtbarkeit dieses Codes zu schützen.

Nächste Schritte