Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Azure Developer CLI (azd) suporta múltiplas infraestruturas como fornecedores de código (IaC), incluindo:
Por defeito, azd assume Bicep como fornecedor de IaC. Consulte o artigo Comparando Terraform e Bicep para ajuda a decidir qual o fornecedor de IaC que é o melhor para o seu projeto.
Nota
Terraform ainda está em beta. Leia mais sobre o suporte a funcionalidades alfa e beta na página de versionamento de funcionalidades e estratégias de lançamento
Pré-requisitos
- Instala e configura o Terraform.
- Instalar o CLI do Azure (v 2.38.0+).
- Revê o diagrama de arquitetura e os recursos Azure que implementas no modelo Node.js ou Python Terraform.
Importante
As implementações do Terraform requerem um login com CLI do Azure mesmo quando se usa azd. O fornecedor Terraform azurerm autentica-se através do CLI do Azure por defeito e não lê tokens da azd cache de credenciais. Se executar apenas azd auth login, azd up falha na etapa de aprovisionamento com ERROR: Please run 'az login' to setup account. Consulte Autenticar no Azure para o fluxo de início de sessão recomendado.
Autenticar no Azure
Como o Terraform utiliza a CLI do Azure para autenticação, tem de ter sessão iniciada em azd e em az antes de executar azd up. Podes fazer isso de duas formas.
Opção 1: Iniciar sessão uma vez com CLI do Azure (recomendado)
Configurar azd para delegar autenticação ao CLI do Azure. Esta definição permite-te iniciar sessão uma vez com az login e usar as mesmas credenciais para ambas as ferramentas.
azd config set auth.useAzCliAuth true
az login
Se trabalhar com vários inquilinos, inclua o --tenant parâmetro:
az login --tenant <tenant-id>
Opção 2: Iniciar sessão em cada ferramenta separadamente
Se preferir manter azd e a autenticação da CLI do Azure separados, inicie sessão em cada ferramenta com o respetivo comando:
azd auth login
az login
Tens de atualizar ambas as sessões quando qualquer um dos tokens expirar.
Configurar o Terraform como o provedor IaC
Abra o ficheiro
azure.yamlencontrado na raiz do seu projeto e certifique-se de que tem as seguintes linhas para sobrepor o padrão, que é Bicep:infra: provider: terraformAdiciona todos os teus
.tfficheiros aoinfradiretório encontrado na raiz do teu projeto.Execute
azd up.
Nota
Consulta estes dois modelos azd com o Terraform como Provedor de IaC: Node.js e Terraform e Python e Terraform.
azd pipeline config para Terraform
Terraform armazena o estado sobre sua infraestrutura gerenciada e configuração. Por causa deste ficheiro de estado, precisas de ativar o estado remoto antes executares azd pipeline config para configurar o teu pipeline de implementação em GitHub.
Por defeito, azd assume o uso do ficheiro de estado local. Se executaste azd up antes de ativar o estado remoto, precisas de correr azd down e mudar para o ficheiro de estado remoto.
Estado local vs estado remoto
A Terraform utiliza dados de estado persistente para acompanhar os recursos que gere.
Cenários para habilitar o estado remoto:
- Para permitir o acesso compartilhado aos dados do 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 local do estado
Ativar estado remoto
Certifique-se de configurar uma conta de armazenamento de estado remoto.
Adiciona um novo ficheiro 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}" }Atualização
provider.tfencontrada nainfrapasta para 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 configuração no.envficheiro. 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_groupExecuta o comando seguinte
azdconforme o teu fluxo de trabalho habitual. Quando o estado remoto é detetado,azdinicializa o Terraform com a configuração do backend configurada.Para partilhar o ambiente com os colegas de equipa, certifique-se de que eles correm
azd env refresh -e <environmentName>para atualizar as definições do ambiente no sistema local e execute o Passo 4 para adicionar configuração no.envficheiro.
Consulte também
- Saiba mais sobre a dependência do Terraform em relação ao CLI do Azure.
- Para mais informações sobre o estado remoto, veja store Terraform state em Armazenamento do Azure.
- Modelo: React Web App com API Node.js e MongoDB (Terraform) em Azure