Verwenden von Terraform als Infrastruktur als Codetool für Azure Developer CLI
Azure Developer CLI (azd) unterstützt mehrere Infrastrukturen als Codeanbieter (IaC), einschließlich:
Geht standardmäßig azd
von Bicep als IaC-Anbieter aus. Im Artikel "Vergleich terraform" und "Bicep" finden Sie Hilfe bei der Entscheidung, welcher IaC-Anbieter für Ihr Projekt am besten geeignet ist.
Hinweis
Terraform befindet sich noch in der Betaversion. Weitere Informationen zur Unterstützung von Alpha- und Betafeatures auf der Seite "Featureversionsverwaltung" und "Releasestrategie "
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 Vorlage Node.js oder Python Terraform bereitstellen.
Hinweis
Terraform erfordert zwar azd
keine Azure CLI-Anmeldung, erfordert jedoch Azure CLI. Lesen Sie mehr über diese Anforderung aus der offiziellen Dokumentation von Terraform.
Konfigurieren von Terraform als IaC-Anbieter
Öffnen Sie die
azure.yaml
Datei im Stammverzeichnis Ihres Projekts, und stellen Sie sicher, dass sie die folgenden Zeilen haben, um den Standardwert außer Kraft zu setzen, der Bicep lautet:infra: provider: terraform
Fügen Sie alle Ihre
.tf
Dateien zum Verzeichnis hinzu, dasinfra
sich im Stammverzeichnis Ihres Projekts befindet.Führen Sie
azd up
aus.
Hinweis
Schauen Sie sich diese beiden azd-Vorlagen mit Terraform als IaC-Anbieter an: Node.js und Terraform und Python und Terraform.
azd pipeline config
für Terraform
Terraform speichert Zustand über Ihre verwaltete Infrastruktur und Konfiguration. Aufgrund dieser Statusdatei müssen Sie den Remotestatus aktivieren, bevor Sie die azd pipeline config
Bereitstellungspipeline in GitHub einrichten.
Es wird standardmäßig davon ausgegangen, azd
dass die lokale Zustandsdatei verwendet wird. Wenn Sie vor dem Aktivieren des Remotezustands ausgeführt haben azd up
, müssen Sie die Remotestatusdatei ausführen azd down
und zu dieser wechseln.
Lokaler vs Remotestatus
Terraform verwendet permanente Zustandsdaten , um die von ihr verwalteten Ressourcen nachzuverfolgen.
Szenarien zum Aktivieren des Remotezustands:
- So ermöglichen Sie gemeinsam genutzten Zugriff auf die Statusdaten, und mehrere Personen arbeiten an dieser Sammlung von Infrastrukturressourcen zusammen
- So vermeiden Sie das Verfügbarmachen vertraulicher Informationen, die in der Zustandsdatei enthalten sind
- So verringern Sie die Wahrscheinlichkeit einer versehentlichen Löschung aufgrund des lokalen Speicherns des Zustands
Remotestatus aktivieren
Stellen Sie sicher, dass Sie ein Remotestatusspeicherkonto konfigurieren.
Fügen Sie eine neue Datei hinzu, die
infra
im Ordner aufgerufen wirdprovider.conf.json
.{ "storage_account_name": "${RS_STORAGE_ACCOUNT}", "container_name": "${RS_CONTAINER_NAME}", "key": "azd/azdremotetest.tfstate", "resource_group_name": "${RS_RESOURCE_GROUP}" }
Update
provider.tf
iminfra
Ordner, um das Back-End als Remote festzulegen# Configure the Azure Provider terraform { required_version = ">= 1.1.7, < 2.0.0" backend "azurerm" { }
Führen Sie diesen Befehl
azd env set <key> <value>
aus, um die Konfiguration in der.env
Datei hinzuzufügen. 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äß Dem üblichen Workflow aus. Wenn der Remotestatus erkannt wird,azd
initialisiert Terraform mit der konfigurierten Back-End-Konfiguration.Um die Umgebung für Teamkollegen freizugeben, stellen Sie sicher, dass sie ausgeführt
azd env refresh -e <environmentName>
werden, um 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 von Azure CLI.
- Weitere Informationen zum Remotestatus finden Sie unter "Terraform"-Zustand in Azure Storage.
- Vorlage: React Web App mit Node.js-API und MongoDB (Terraform) in Azure
Nächste Schritte
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für