Использование Terraform в качестве средства кода для интерфейса командной строки разработчика Azure

интерфейс командной строки разработчика Azure (azd) поддерживает несколько поставщиков инфраструктуры в виде кода (IaC), в том числе:

По умолчанию azd предполагает Bicep в качестве поставщика IaC. Ознакомьтесь со статьей "Сравнение Terraform и Bicep ", чтобы решить, какой поставщик IaC лучше всего подходит для вашего проекта.

Примечание.

Terraform по-прежнему находится в бета-версии. Дополнительные сведения о поддержке альфа-и бета-компонентов см. на странице стратегии управления версиями компонентов и выпуска

Предварительные требования

Примечание.

Хотя azd не зависит от логина Azure CLI, Terraform требует Azure CLI. Дополнительные сведения об этом требовании см. в официальной документации Terraform.

Настройка Terraform в качестве поставщика IaC

  1. Откройте файл azure.yaml, найденный в корневом каталоге вашего проекта, и убедитесь, что у вас есть следующие строки, чтобы переопределить значение по умолчанию, которым является Bicep:

    infra:
      provider: terraform
    
  2. Добавьте все файлы .tf в каталог infra, расположенный в корне вашего проекта.

  3. Запустите azd up.

Примечание.

Ознакомьтесь с этими двумя шаблонами azd с Terraform в качестве поставщика IaC: Node.js и Terraform и Python и Terraform.

azd pipeline config для Terraform

Terraform хранит состояние управляемой инфраструктуры и конфигурации. Из-за этого файла состояния необходимо включить удаленное состояние до того как вы запустите azd pipeline config, чтобы настроить конвейер развертывания на GitHub.

По умолчанию azd предполагается использование локального файла состояния. Если вы запустили azd up перед включением удаленного состояния, необходимо запустить azd down и переключиться в файл удаленного состояния.

Локальное и удаленное состояние

Terraform использует сохраненные данные состояния для отслеживания управляемых ресурсов.

Сценарии включения удаленного состояния:

  • Разрешить общий доступ к данным состояния и разрешить нескольким пользователям работать вместе с этой коллекцией ресурсов инфраструктуры.
  • Чтобы избежать предоставления конфиденциальной информации, содержащейся в файле состояния
  • Чтобы уменьшить вероятность случайного удаления из-за локального хранения состояния

Включение удаленного состояния

  1. Убедитесь, что настроен аккаунт для хранения состояния удаленного доступа.

  2. Добавьте новый файл, названный provider.conf.json, в папку infra.

    {
        "storage_account_name": "${RS_STORAGE_ACCOUNT}",
        "container_name": "${RS_CONTAINER_NAME}",
        "key": "azd/azdremotetest.tfstate",
        "resource_group_name": "${RS_RESOURCE_GROUP}"
    }
    
  3. Обновите provider.tf, найденный в папке infra, чтобы сделать серверную часть удаленной.

    # Configure the Azure Provider
    terraform {
      required_version = ">= 1.1.7, < 2.0.0"
      backend "azurerm" {
      }
    
  4. Выполните команду azd env set <key> <value> , чтобы добавить конфигурацию .env в файл. Например:

    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. Выполните следующую azd команду в рамках обычного рабочего процесса. При обнаружении удаленного состояния azd инициализирует Terraform с настроенной конфигурацией бэкенда.

  6. Чтобы поделиться средой с участниками команды, убедитесь, что они запускают azd env refresh -e <environmentName> для обновления параметров среды в локальной системе, и выполните шаг 4, чтобы добавить конфигурацию в файл .env.

См. также

Следующие шаги