Delen via


Terraform gebruiken als een hulpprogramma voor infrastructuur als codeprogramma voor Azure Developer CLI

Azure Developer CLI (azd) ondersteunt meerdere infrastructuren als codeproviders (IaC), waaronder:

azd Standaard wordt ervan uitgegaan dat Bicep de IaC-provider is. Raadpleeg het artikel Terraform en Bicep vergelijken voor hulp bij het bepalen welke IaC-provider het beste is voor uw project.

Notitie

Terraform is nog steeds bèta. Meer informatie over ondersteuning voor alfa- en bètafuncties op de pagina met functieversiebeheer en releasestrategie

Vereisten

Notitie

Hoewel azd dit niet afhankelijk is van een Azure CLI-aanmelding, is Azure CLI vereist voor Terraform. Lees meer over deze vereiste in de officiële documentatie van Terraform.

Terraform configureren als de IaC-provider

  1. Open het azure.yaml bestand in de hoofdmap van uw project en zorg ervoor dat u de volgende regels hebt om de standaardwaarde te overschrijven. Dit is Bicep:

    infra:
      provider: terraform
    
  2. Voeg al uw .tf bestanden toe aan de infra map in de hoofdmap van uw project.

  3. Voer azd up uit.

Notitie

Bekijk deze twee azd-sjablonen met Terraform als IaC-provider: Node.js en Terraform en Python en Terraform.

azd pipeline config voor Terraform

Terraform slaat de status van uw beheerde infrastructuur en configuratie op. Vanwege dit statusbestand moet u de externe status inschakelen voordat u azd pipeline config uw implementatiepijplijn instelt in GitHub.

azd Standaard wordt ervan uitgegaan dat het gebruik van een lokaal statusbestand wordt gebruikt. Als u hebt uitgevoerd azd up voordat u de externe status inschakelt, moet u uitvoeren azd down en overschakelen naar het bestand met externe statussen.

Lokale versus externe status

Terraform maakt gebruik van persistente statusgegevens om de resources bij te houden die worden beheerd.

Scenario's voor het inschakelen van de externe status:

  • Als u gedeelde toegang tot de statusgegevens wilt toestaan en meerdere personen wilt toestaan samen te werken aan die verzameling infrastructuurbronnen
  • Om te voorkomen dat gevoelige informatie wordt weergegeven die is opgenomen in het statusbestand
  • De kans op onbedoeld verwijderen verkleinen vanwege het lokaal opslaan van de status

Externe status inschakelen

  1. Zorg ervoor dat u een opslagaccount voor externe status configureert.

  2. Voeg een nieuw bestand toe met de naam provider.conf.json in de infra map.

    {
        "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 gevonden in de infra map om de back-end in te stellen op afstand

    # Configure the Azure Provider
    terraform {
      required_version = ">= 1.1.7, < 2.0.0"
      backend "azurerm" {
      }
    
  4. Voer azd env set <key> <value> uit om configuratie toe te voegen aan het .env bestand. Voorbeeld:

    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. Voer de volgende azd opdracht uit op basis van uw gebruikelijke werkstroom. Wanneer de externe status wordt gedetecteerd, azd initialiseert u Terraform met de geconfigureerde back-endconfiguratie.

  6. Als u de omgeving wilt delen met teamleden, moet u ervoor zorgen dat ze azd env refresh -e <environmentName> omgevingsinstellingen in het lokale systeem vernieuwen en stap 4 uitvoeren om configuratie in het .env bestand toe te voegen.

Zie ook

Volgende stappen