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

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

  1. Öffnen Sie die Datei azure.yamlxx, 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
    
  2. Fügen Sie alle Ihre .tf-Dateien dem infra-Verzeichnis hinzu, das Sie im Stammverzeichnis Ihres Projekts finden.

  3. 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

  1. Stellen Sie sicher, dass Sie ein Remote-Zustand-Speicherkonto konfigurieren.

  2. Fügen Sie eine neue Datei namens provider.conf.json im Ordner infra hinzu.

    {
        "storage_account_name": "${RS_STORAGE_ACCOUNT}",
        "container_name": "${RS_CONTAINER_NAME}",
        "key": "azd/azdremotetest.tfstate",
        "resource_group_name": "${RS_RESOURCE_GROUP}"
    }
    
  3. Aktualisieren Sie provider.tf, das sich im Ordner infra befindet, um das Back-End auf „remote“ zu setzen

    # Configure the Azure Provider
    terraform {
      required_version = ">= 1.1.7, < 2.0.0"
      backend "azurerm" {
      }
    
  4. 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
    
  5. Führen Sie den nächsten azd-Befehl gemäß Ihrem üblichen Workflow aus. Wenn der Remote-Status erkannt wird, initialisiert azd Terraform mit der konfigurierten Back-End-Konfiguration.

  6. 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

Nächste Schritte