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

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

  1. Ö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
    
  2. Fügen Sie alle Ihre .tf Dateien zum Verzeichnis hinzu, das infra sich im Stammverzeichnis Ihres Projekts befindet.

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

  1. Stellen Sie sicher, dass Sie ein Remotestatusspeicherkonto konfigurieren.

  2. 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}"
    }
    
  3. Update provider.tf im infra Ordner, um das Back-End als Remote festzulegen

    # Configure the Azure Provider
    terraform {
      required_version = ">= 1.1.7, < 2.0.0"
      backend "azurerm" {
      }
    
  4. 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
    
  5. 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.

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

Nächste Schritte