Usar o Terraform como uma infraestrutura como ferramenta de código para a CLI do Desenvolvedor do Azure
A CLI do Desenvolvedor do Azure (azd) oferece suporte a várias infraestruturas como provedores de código (IaC), incluindo:
Por padrão, azd
assume Bicep como o provedor IaC. Consulte o artigo Comparando Terraform e Bicep para obter ajuda para decidir qual provedor IaC é melhor para o seu projeto.
Observaçã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
- Instalar e configurar o Terraform
- Instalar e fazer logon na CLI do Azure (v 2.38.0+)
- Revise o diagrama de arquitetura e os recursos do Azure que você implantará no modelo Node.js ou Python Terraform.
Observação
Embora azd
não dependa de um logon da CLI do Azure, o Terraform requer a CLI do Azure. Leia mais sobre esse requisito na documentação oficial da Terraform.
Configurar o Terraform como o provedor IaC
Abra o arquivo encontrado na raiz do seu projeto e verifique se você tem as seguintes linhas para substituir o
azure.yaml
padrão, que é Bicep:infra: provider: terraform
Adicione todos os seus
.tf
arquivos aoinfra
diretório encontrado na raiz do seu projeto.Execute
azd up
.
Observação
Confira esses dois modelos azd com Terraform como provedor IaC: Node.js e Terraform e Python e Terraform.
azd pipeline config
para Terraform
O Terraform armazena o estado sobre sua infraestrutura gerenciada e configuração. Devido a esse arquivo de estado, você precisa habilitar o estado remoto antes de executar azd pipeline config
para configurar seu 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 de estado persistentes 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 estado de armazenamento local:
Habilitar estado remoto
Certifique-se de configurar uma conta de armazenamento de estado remoto.
Adicione um novo arquivo chamado
provider.conf.json
nainfra
pasta.{ "storage_account_name": "${RS_STORAGE_ACCOUNT}", "container_name": "${RS_CONTAINER_NAME}", "key": "azd/azdremotetest.tfstate", "resource_group_name": "${RS_RESOURCE_GROUP}" }
Atualização
provider.tf
encontrada nainfra
pasta para definir o back-end 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.env
arquivo. 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_group
Execute o próximo
azd
comando de acordo com seu fluxo de trabalho habitual. Quando o estado remoto é detectado,azd
inicializa o Terraform com a configuração de back-end configurada.Para compartilhar o ambiente com colegas de equipe, certifique-se de que eles sejam executados
azd env refresh -e <environmentName>
para atualizar as configurações do ambiente no sistema local e execute a Etapa 4 para adicionar a configuração no.env
arquivo.
Confira também
- Saiba mais sobre a dependência do Terraform na CLI do Azure.
- Para saber mais sobre o estado remoto, consulte armazenar o estado do Terraform no Armazenamento do Azure.
- Modelo: Aplicativo Web React com Node.js API e MongoDB (Terraform) no Azure
Próximas etapas
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de