Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A CLI do Desenvolvedor do Azure (azd) dá suporte a vários provedores de IaC (infraestruturas como código), incluindo:
Por padrão, azd assume Bicep como o provedor de IaC. Consulte o artigo Comparando o Terraform e o Bicep para obter ajuda para decidir qual provedor de IaC é melhor para seu projeto.
Observação
O Terraform ainda está em beta. Leia mais sobre o suporte a recursos alfa e beta na página de controle de versão e estratégia de lançamento de recursos
Pré-requisitos
- Instale e configure o Terraform.
- Instale CLI do Azure (v 2.38.0+).
- Examine o diagrama de arquitetura e os recursos de Azure que você implanta no modelo terraform Node.js ou Python.
Importante
As implantações do Terraform exigem login na CLI do Azure mesmo quando você usa azd. O provedor Terraform azurerm autentica por CLI do Azure por padrão e não lê tokens do azd cache de credenciais. Se você executar azd auth loginapenas, azd up falhará na etapa de provisionamento com ERROR: Please run 'az login' to setup account. Consulte Authenticate to Azure para ver o fluxo de entrada recomendado.
Autenticar no Azure
Como o Terraform usa CLI do Azure para autenticação, você precisa estar conectado a ambos azd e az antes de executar azd up. Você pode fazer isso de duas maneiras.
Opção 1: entrar uma vez com CLI do Azure (recomendado)
Configure azd para delegar a autenticação para CLI do Azure. Essa configuração permite que você entre uma vez com az login e use as mesmas credenciais para ambas as ferramentas.
azd config set auth.useAzCliAuth true
az login
Se você trabalhar com vários locatários, inclua o --tenant parâmetro:
az login --tenant <tenant-id>
Opção 2: Entrar em cada ferramenta separadamente
Se você preferir manter a autenticação do azd e da CLI do Azure independente, faça login em cada ferramenta com seu próprio comando:
azd auth login
az login
Você precisa atualizar ambas as sessões quando um dos tokens expirar.
Configurar o Terraform como o provedor de IaC
Abra o
azure.yamlarquivo encontrado na raiz do seu projeto e verifique se você tem as seguintes linhas para substituir o padrão, que é Bicep:infra: provider: terraformAdicione todos os seus arquivo
.tfaoinfradiretório encontrado na raiz do seu projeto.Execute
azd up.
Observação
Confira estes dois modelos azd usando o Terraform como provedor de IaC: Node.js e Terraform e Python e Terraform.
azd pipeline config para Terraform
O Terraform armazena o estado da sua infraestrutura e configuração gerenciadas. Devido a esse arquivo de estado, você precisa habilitar o estado remoto antes de executar azd pipeline config para configurar o pipeline de implantação no GitHub.
Por padrão, azd pressupõe o uso do arquivo de estado local. Se você executou azd up antes de habilitar o estado remoto, precisará executar azd down e alternar para o arquivo de estado remoto.
Estado local vs. remoto
O Terraform usa dados persistentes de estado para acompanhar os recursos que gerencia.
Cenários para habilitar o estado remoto:
- Para permitir o acesso compartilhado aos dados de estado e permitir que várias pessoas trabalhem juntas nessa coleção de recursos de infraestrutura
- Para evitar a exposição de informações confidenciais incluídas no arquivo de estado
- Para diminuir a chance de exclusão inadvertida devido ao armazenamento do estado localmente
Habilitar estado remoto
Certifique-se de configurar uma conta de armazenamento de estado remoto.
Adicione um novo arquivo chamado
provider.conf.jsonnainfrapasta.{ "storage_account_name": "${RS_STORAGE_ACCOUNT}", "container_name": "${RS_CONTAINER_NAME}", "key": "azd/azdremotetest.tfstate", "resource_group_name": "${RS_RESOURCE_GROUP}" }Atualize
provider.tfencontrado na pastainfrapara definir o backend como remoto# Configure the Azure Provider terraform { required_version = ">= 1.1.7, < 2.0.0" backend "azurerm" { }Execute
azd env set <key> <value>para adicionar a configuração no.envarquivo. Por exemplo: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_groupExecute o próximo comando
azdde acordo com seu fluxo de trabalho normal. Quando o estado remoto é detectado,azdinicializa o Terraform com a configuração de back-end configurada.Para compartilhar o ambiente com colegas de equipe, certifique-se de que eles executem
azd env refresh -e <environmentName>para atualizar as configurações do ambiente no sistema local e realizem a Etapa 4 para adicionar a configuração no arquivo.env.
Confira também
- Saiba mais sobre a dependência do Terraform em CLI do Azure.
- Para obter mais informações sobre o estado remoto, consulte store terraform state in Armazenamento do Azure.
- Modelo: React Web App com Node.js API e MongoDB (Terraform) no Azure
Próximas etapas
Perguntas frequentes sobre Azure Developer CLI