Поделиться через


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

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

По умолчанию предполагается, что 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 файл.

См. также

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