Condividi tramite


Usare Terraform come strumento di infrastruttura come codice per l'interfaccia della riga di comando per sviluppatori di Azure

L'interfaccia della riga di comando per sviluppatori di Azure (azd) supporta più infrastrutture come provider di codice (IaC), tra cui:

Per impostazione predefinita, azd presuppone Bicep come provider IaC. Fare riferimento all'articolo Confronto tra Terraform e Bicep per informazioni sulla scelta del provider IaC migliore per il progetto.

Nota

Terraform è ancora in versione beta. Per altre informazioni sul supporto delle funzionalità alfa e beta, vedere la pagina relativa al controllo delle versioni delle funzionalità e alla strategia di rilascio

Prerequisiti

Nota

Anche se azd non si basa su un account di accesso dell'interfaccia della riga di comando di Azure, Terraform richiede l'interfaccia della riga di comando di Azure. Per altre informazioni su questo requisito, vedere la documentazione ufficiale di Terraform.

Configurare Terraform come provider IaC

  1. Aprire il azure.yaml file presente nella radice del progetto e assicurarsi di avere le righe seguenti per eseguire l'override del valore predefinito, ovvero Bicep:

    infra:
      provider: terraform
    
  2. Aggiungere tutti i .tf file alla infra directory trovata nella radice del progetto.

  3. Eseguire azd up.

Nota

Vedere questi due modelli azd con Terraform come provider IaC: Node.js e Terraform e Python e Terraform.

azd pipeline config per Terraform

Terraform archivia lo stato relativo all'infrastruttura gestita e alla configurazione. A causa di questo file di stato, è necessario abilitare lo stato remoto prima di eseguire azd pipeline config per configurare la pipeline di distribuzione in GitHub.

Per impostazione predefinita, azd presuppone l'uso del file di stato locale. Se è stato eseguito azd up prima di abilitare lo stato remoto, è necessario eseguire azd down e passare al file di stato remoto.

Stato locale e remoto

Terraform usa dati di stato persistenti per tenere traccia delle risorse gestite.

Scenari per l'abilitazione dello stato remoto:

  • Per consentire l'accesso condiviso ai dati sullo stato e consentire a più persone di collaborare su tale raccolta di risorse dell'infrastruttura
  • Per evitare di esporre informazioni riservate incluse nel file di stato
  • Per ridurre la probabilità di eliminazione accidentale a causa dell'archiviazione dello stato in locale

Abilitare lo stato remoto

  1. Assicurarsi di configurare un account di archiviazione con stato remoto.

  2. Aggiungere un nuovo file denominato provider.conf.json nella infra cartella .

    {
        "storage_account_name": "${RS_STORAGE_ACCOUNT}",
        "container_name": "${RS_CONTAINER_NAME}",
        "key": "azd/azdremotetest.tfstate",
        "resource_group_name": "${RS_RESOURCE_GROUP}"
    }
    
  3. Aggiornamento provider.tf trovato nella infra cartella per impostare il back-end come remoto

    # Configure the Azure Provider
    terraform {
      required_version = ">= 1.1.7, < 2.0.0"
      backend "azurerm" {
      }
    
  4. Eseguire azd env set <key> <value> per aggiungere la configurazione nel .env file. Ad esempio:

    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. Eseguire il comando successivo azd in base al flusso di lavoro consueto. Quando viene rilevato lo stato remoto, azd inizializza Terraform con la configurazione back-end configurata.

  6. Per condividere l'ambiente con i compagni di squadra, assicurarsi di eseguire azd env refresh -e <environmentName> per aggiornare le impostazioni dell'ambiente nel sistema locale ed eseguire il passaggio 4 per aggiungere la configurazione nel .env file.

Vedi anche

Passaggi successivi