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
- Terraform installeren en configureren
- Azure CLI installeren en aanmelden (v 2.38.0+)
- Bekijk het architectuurdiagram en de Azure-resources die u implementeert in de sjabloon Node.js of Python Terraform.
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
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
Voeg al uw
.tf
bestanden toe aan deinfra
map in de hoofdmap van uw project.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
Zorg ervoor dat u een opslagaccount voor externe status configureert.
Voeg een nieuw bestand toe met de naam
provider.conf.json
in deinfra
map.{ "storage_account_name": "${RS_STORAGE_ACCOUNT}", "container_name": "${RS_CONTAINER_NAME}", "key": "azd/azdremotetest.tfstate", "resource_group_name": "${RS_RESOURCE_GROUP}" }
Update
provider.tf
gevonden in deinfra
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" { }
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
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.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
- Meer informatie over de afhankelijkheid van Terraform op Azure CLI.
- Zie Terraform-status opslaan in Azure Storage voor meer informatie over externe status.
- Sjabloon: React Web App met Node.js API en MongoDB (Terraform) in Azure