Share via


Använda Terraform som en infrastruktur som kodverktyg för Azure Developer CLI

Azure Developer CLI (azd) stöder flera IaC-leverantörer (infrastruktur som kod), inklusive:

Som standard azd förutsätter vi att Bicep är IaC-providern. Se artikeln Jämföra Terraform och Bicep för hjälp med att avgöra vilken IaC-provider som är bäst för ditt projekt.

Kommentar

Terraform är fortfarande i betaversion. Läs mer om stöd för alfa- och betafunktioner på sidan för funktionsversioner och lanseringsstrategi

Förutsättningar

Kommentar

Terraform förlitar sig inte på en Azure CLI-inloggning, men azd kräver Azure CLI. Läs mer om detta krav i Terraforms officiella dokumentation.

Konfigurera Terraform som IaC-provider

  1. azure.yaml Öppna filen som finns i roten för projektet och kontrollera att du har följande rader för att åsidosätta standardvärdet, som är Bicep:

    infra:
      provider: terraform
    
  2. Lägg till alla filer .tf i katalogen infra som finns i projektets rot.

  3. Kör azd up.

Kommentar

Kolla in dessa två azd-mallar med Terraform som IaC-provider: Node.js och Terraform och Python och Terraform.

azd pipeline config för Terraform

Terraform lagrar tillstånd om din hanterade infrastruktur och konfiguration. På grund av den här tillståndsfilen måste du aktivera fjärrtillstånd innan du kör azd pipeline config för att konfigurera distributionspipelinen i GitHub.

Som standard azd förutsätter vi att du använder en lokal tillståndsfil. Om du körde azd up innan du aktiverade fjärrtillståndet måste du köra azd down och växla till fjärrtillståndsfilen.

Lokalt kontra fjärrtillstånd

Terraform använder beständiga tillståndsdata för att hålla reda på de resurser som hanteras.

Scenarier för att aktivera fjärrtillstånd:

  • För att tillåta delad åtkomst till tillståndsdata och tillåta att flera personer arbetar tillsammans med den samlingen av infrastrukturresurser
  • För att undvika att exponera känslig information som ingår i tillståndsfilen
  • Minska risken för oavsiktlig borttagning på grund av lagringstillstånd lokalt

Aktivera fjärrtillstånd

  1. Kontrollera att du konfigurerar ett fjärrtillståndslagringskonto.

  2. Lägg till en ny fil med namnet provider.conf.json i infra mappen .

    {
        "storage_account_name": "${RS_STORAGE_ACCOUNT}",
        "container_name": "${RS_CONTAINER_NAME}",
        "key": "azd/azdremotetest.tfstate",
        "resource_group_name": "${RS_RESOURCE_GROUP}"
    }
    
  3. Uppdatering provider.tf hittades i infra mappen för att ställa in att serverdelen ska vara fjärransluten

    # Configure the Azure Provider
    terraform {
      required_version = ">= 1.1.7, < 2.0.0"
      backend "azurerm" {
      }
    
  4. Kör azd env set <key> <value> för att lägga till konfiguration i .env filen. Till exempel:

    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. Kör nästa azd kommando enligt ditt vanliga arbetsflöde. När fjärrtillstånd identifieras azd initierar Terraform med den konfigurerade serverdelskonfigurationen.

  6. Om du vill dela miljön med gruppmedlemmar kontrollerar du att de körs azd env refresh -e <environmentName> för att uppdatera miljöinställningarna i det lokala systemet och utför steg 4 för att lägga till konfigurationen .env i filen.

Se även

Nästa steg