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
- Installera och konfigurera Terraform
- Installera och logga in på Azure CLI (v 2.38.0+)
- Granska arkitekturdiagrammet och de Azure-resurser som du distribuerar i mallen Node.js eller Python Terraform.
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
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
Lägg till alla filer
.tf
i katalogeninfra
som finns i projektets rot.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
Kontrollera att du konfigurerar ett fjärrtillståndslagringskonto.
Lägg till en ny fil med namnet
provider.conf.json
iinfra
mappen .{ "storage_account_name": "${RS_STORAGE_ACCOUNT}", "container_name": "${RS_CONTAINER_NAME}", "key": "azd/azdremotetest.tfstate", "resource_group_name": "${RS_RESOURCE_GROUP}" }
Uppdatering
provider.tf
hittades iinfra
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" { }
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
Kör nästa
azd
kommando enligt ditt vanliga arbetsflöde. När fjärrtillstånd identifierasazd
initierar Terraform med den konfigurerade serverdelskonfigurationen.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
- Läs mer om Terraforms beroende av Azure CLI.
- Mer information om fjärrtillstånd finns i Lagra Terraform-tillstånd i Azure Storage.
- Mall: React Web App med Node.js API och MongoDB (Terraform) i Azure