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 bevindt zich nog steeds in de bètafase. 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 aangenomen dat een lokaal statusbestand wordt gebruikt. Als u azd up hebt verlopen voordat u de externe status inschakelt, moet u azd down uitvoeren en overschakelen naar het externe status bestand.

Lokale versus externe toestand

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

Scenario’s voor het inschakelen van de afstandsstatus:

  • 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, initialiseert azd 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