Verwenden Sie Terraform als Infrastruktur-als-Code-Tool für Azure Developer CLI
Azure Developer CLI (azd
) unterstützt mehrere Infrastrukturen als Code (IaC)-Anbieter, darunter:
Standardmäßig nimmt azd
Bicep als IaC-Anbieter an. Lesen Sie den Artikel Vergleich von Terraform und Bicep, um zu entscheiden, welcher IaC-Anbieter für Ihr Projekt am besten geeignet ist.
Hinweis
Terraform befindet sich noch in der Beta-Phase. Lesen Sie mehr über die Unterstützung von Alpha- und Beta-Funktionen auf der Seite Funktionsversionierung und Veröffentlichungsstrategie
Voraussetzungen
- Installieren und Konfigurieren von Terraform
- Installieren und anmelden bei Azure CLI (v 2.38.0+)
- Überprüfen Sie das Architekturdiagramm und die Azure-Ressourcen, die Sie in der Node.js- oder Python-Terraform-Vorlage bereitstellen werden..
Hinweis
Während azd
nicht auf eine Azure CLI-Anmeldung angewiesen ist, benötigt Terraform Azure CLI. Weitere Informationen zu dieser Anforderung finden Sie in der offiziellen Dokumentation von Terraform.
Konfiguration von Terraform als IaC-Anbieter
Öffnen Sie die Datei
azure.yaml
xx, die Sie im Stammverzeichnis Ihres Projekts finden, und stellen Sie sicher, dass Sie die folgenden Zeilen haben, um die Standardeinstellung zu überschreiben, die Bicep lautet:infra: provider: terraform
Fügen Sie alle Ihre
.tf
-Dateien deminfra
-Verzeichnis hinzu, das Sie im Stammverzeichnis Ihres Projekts finden.Führen Sie
azd up
aus.
Hinweis
Überprüfen Sie diese beiden azd-Vorlagen mit Terraform als IaC-Anbieter: Node.js und Terraform sowie Python und Terraform.
azd pipeline config
für Terraform
Terraform speichert Informationen über Ihre verwaltete Infrastruktur und Konfiguration. Aufgrund dieser Statusdatei müssen Sie den Remote-Status aktivieren, bevor Sie azd pipeline config
ausführen, um Ihre Bereitstellung in GitHub einzurichten.
Standardmäßig verwendet azd
die lokale Statusdatei. Wenn Sie azd up
ausgeführt haben, bevor Sie den Remote-Status aktiviert haben, müssen Sie azd down
ausführen und zur Remote-Statusdatei wechseln.
Lokaler gegenüber Remote-Zustand
Terraform verwendet persistente Zustandsdaten, um die von ihm verwalteten Ressourcen zu verfolgen.
Szenarien für die Aktivierung des Remote-Zustands:
- Gemeinsamer Zugriff auf die Zustandsdaten und Zusammenarbeit mehrerer Personen an dieser Sammlung von Infrastrukturressourcen
- Um zu vermeiden, dass sensible Informationen in der Statusdatei offengelegt werden
- Um die Wahrscheinlichkeit eines versehentlichen Löschens zu verringern, weil der Speicherstatus lokal gespeichert wird
Enable remote stateEnable remote stateAktiviert den Remote-Status
Stellen Sie sicher, dass Sie ein Remote-Zustand-Speicherkonto konfigurieren.
Fügen Sie eine neue Datei namens
provider.conf.json
im Ordnerinfra
hinzu.{ "storage_account_name": "${RS_STORAGE_ACCOUNT}", "container_name": "${RS_CONTAINER_NAME}", "key": "azd/azdremotetest.tfstate", "resource_group_name": "${RS_RESOURCE_GROUP}" }
Aktualisieren Sie
provider.tf
, das sich im Ordnerinfra
befindet, um das Back-End auf „remote“ zu setzen# Configure the Azure Provider terraform { required_version = ">= 1.1.7, < 2.0.0" backend "azurerm" { }
Führen Sie
azd env set <key> <value>
aus, um die Konfiguration in die.env
-Datei hinzuzufügen. Zum Beispiel:azd env set RS_STORAGE_ACCOUNT your_storage_account_name azd env set RS_CONTAINER_NAME your_terraform_container_name azd env set RS_RESOURCE_GROUP your_storage_account_resource_group
Führen Sie den nächsten
azd
-Befehl gemäß Ihrem üblichen Workflow aus. Wenn der Remote-Status erkannt wird, initialisiertazd
Terraform mit der konfigurierten Back-End-Konfiguration.Um die Umgebung mit Teamkollegen zu teilen, stellen Sie sicher, dass diese
azd env refresh -e <environmentName>
ausführen, um die Umgebungseinstellungen im lokalen System zu aktualisieren, und führen Sie Schritt 4 aus, um die Konfiguration in der.env
-Datei hinzuzufügen.
Siehe auch
- Erfahren Sie mehr über die Abhängigkeit von Terraform in Azure CLI.
- Weitere Informationen zum Remote-Status finden Sie unter Terraform-Status in Azure Storage speichern.
- Vorlage: React Web App mit Node.js API und MongoDB (Terraform) auf Azure