Partilhar 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) dá suporte a várias infraestruturas como provedores de código (IaC), incluindo:

Por padrão, azd assume o Bicep como o provedor de IaC. Consulte o artigo Comparando Terraform e Bicep para obter ajuda para decidir qual provedor de IaC é melhor para seu projeto.

Nota

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

Nota

Embora azd não dependa de um logon da CLI do Azure, o Terraform requer a CLI do Azure. Leia mais sobre este requisito na documentação oficial da Terraform.

Configurar o Terraform como o provedor IaC

  1. Abra o azure.yaml arquivo encontrado na raiz do seu projeto e certifique-se de ter as seguintes linhas para substituir o 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. Executar azd up.

Nota

Confira estes dois modelos azd com Terraform como Provedor 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. 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, você precisa executar azd down e alternar para o arquivo de estado remoto.

Estado local vs estado 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 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

  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 é detetado, azd inicializa o Terraform com a configuração de back-end configurada.

  6. Para partilhar o ambiente com colegas de equipa, certifique-se de que eles executem azd env refresh -e <environmentName> para atualizar as configurações do ambiente no sistema local e que executem o Passo 4 para adicionar a configuração no ficheiro .env.

Consulte também

Próximos passos