Share via


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

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

  1. 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
    
  2. Adicione todos os seus .tf arquivos ao infra diretório encontrado na raiz do seu projeto.

  3. 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

  1. Certifique-se de configurar uma conta de armazenamento de estado remoto.

  2. Adicione um novo arquivo chamado provider.conf.json na infra pasta.

    {
        "storage_account_name": "${RS_STORAGE_ACCOUNT}",
        "container_name": "${RS_CONTAINER_NAME}",
        "key": "azd/azdremotetest.tfstate",
        "resource_group_name": "${RS_RESOURCE_GROUP}"
    }
    
  3. Atualização provider.tf encontrada na infra pasta para definir o back-end como remoto

    # Configure the Azure Provider
    terraform {
      required_version = ">= 1.1.7, < 2.0.0"
      backend "azurerm" {
      }
    
  4. 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
    
  5. 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.

  6. 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

Próximas etapas