Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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. Vedere l'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
- Installare e configurare Terraform.
- Installare interfaccia della riga di comando di Azure (v 2.38.0+).
- Esaminare il diagramma dell'architettura e le risorse Azure distribuite nel modello Node.js o Python Terraform.
Importante
Le distribuzioni Terraform richiedono l'autenticazione tramite interfaccia della riga di comando di Azure anche quando si utilizza azd. Il provider Terraform azurerm esegue l'autenticazione tramite interfaccia della riga di comando di Azure per impostazione predefinita e non legge i token dalla cache delle azd credenziali. Se si esegue solo azd auth login, azd up non riesce durante la fase di provisioning con ERROR: Please run 'az login' to setup account. Vedere Eseguire l'autenticazione per Azure per il flusso di accesso consigliato.
Autenticazione con Azure
Poiché Terraform usa interfaccia della riga di comando di Azure per l'autenticazione, è necessario aver effettuato l'accesso sia a azd che a az prima di eseguire azd up. È possibile farlo in uno dei due modi seguenti.
Opzione 1: Accedere una sola volta con interfaccia della riga di comando di Azure (scelta consigliata)
Configurare azd per delegare l'autenticazione a interfaccia della riga di comando di Azure. Questa impostazione consente di accedere una sola volta con az login e di usare le stesse credenziali per entrambi gli strumenti.
azd config set auth.useAzCliAuth true
az login
Se si lavora con più tenant, includere il --tenant parametro :
az login --tenant <tenant-id>
Opzione 2: Accedere a ogni strumento separatamente
Se si preferisce mantenere indipendenti l'autenticazione di azd e quella di interfaccia della riga di comando di Azure, accedere a ogni strumento con il relativo comando:
azd auth login
az login
È necessario aggiornare entrambe le sessioni alla scadenza di entrambi i token.
Configurare Terraform come provider IaC
Aprire il file
azure.yamlpresente nella radice del progetto e assicurarsi di avere le righe seguenti per eseguire l'override del valore predefinito, ovvero Bicep:infra: provider: terraformAggiungi tutti i
.tffile nella directoryinfratrovata nel root del progetto.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
Assicurarsi di configurare un account di archiviazione con stato remoto.
Aggiungere un nuovo file denominato
provider.conf.jsonnellainfracartella .{ "storage_account_name": "${RS_STORAGE_ACCOUNT}", "container_name": "${RS_CONTAINER_NAME}", "key": "azd/azdremotetest.tfstate", "resource_group_name": "${RS_RESOURCE_GROUP}" }Aggiornamento
provider.tftrovato nellainfracartella per impostare il back-end come remoto# Configure the Azure Provider terraform { required_version = ">= 1.1.7, < 2.0.0" backend "azurerm" { }Eseguire
azd env set <key> <value>per aggiungere la configurazione nel.envfile. 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_groupEseguire il comando successivo
azdin base al flusso di lavoro consueto. Quando viene rilevato lo stato remoto,azdinizializza Terraform con la configurazione back-end configurata.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.envfile.
Vedi anche
- Altre informazioni sulla dipendenza di Terraform da interfaccia della riga di comando di Azure.
- Per altre informazioni sullo stato remoto, vedere store Terraform state in Archiviazione di Azure.
- Modello: React Web App con API Node.js e MongoDB (Terraform) in Azure
Passaggi successivi
Domande frequenti Azure Developer CLI