Condividi tramite


Usare Terraform come strumento di infrastruttura come codice per la CLI per sviluppatori di Azure

Interfaccia della riga di comando di Azure per sviluppatori (azd) supporta diversi fornitori di infrastrutture come codice (IaC), tra cui:

Per impostazione predefinita, azd presuppone Bicep come provider IaC. Fare riferimento all'articolo Comparing Terraform e Bicep per informazioni sulla scelta del provider IaC più adatto al 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 Azure CLI, Terraform richiede Azure CLI. Per altre informazioni su questo requisito, vedere la documentazione ufficiale di Terraform.

Configurare Terraform come provider IaC

  1. Aprire il file azure.yaml 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. Aggiungi tutti i .tf file nella directory infra trovata nel root 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 before si esegue 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

Domande frequenti Azure Developer CLI