Использование Terraform в качестве средства кода для Интерфейса командной строки разработчика Azure
Интерфейс командной строки разработчика Azure () поддерживает несколько инфраструктур в качестве поставщиков кода (azd
IaC), в том числе:
По умолчанию предполагается, что azd
Bicep является поставщиком IaC. Ознакомьтесь со статьей "Сравнение Terraform и Bicep ", чтобы решить, какой поставщик IaC лучше всего подходит для вашего проекта.
Примечание.
Terraform по-прежнему находится в бета-версии. Дополнительные сведения о поддержке альфа-и бета-компонентов см. на странице стратегии управления версиями компонентов и выпуска
Предварительные требования
- Установка и настройка Terraform
- Установка и вход в Azure CLI (версия 2.38.0+)
- Просмотрите схему архитектуры и ресурсы Azure, которые вы развернете в шаблоне Node.js или Python Terraform.
Примечание.
Хотя azd
не зависит от имени входа Azure CLI, Terraform требует Azure CLI. Дополнительные сведения об этом требовании см. в официальной документации Terraform.
Настройка Terraform в качестве поставщика IaC
azure.yaml
Откройте файл, найденный в корне проекта, и убедитесь, что у вас есть следующие строки, чтобы переопределить значение по умолчанию, которое является Bicep:infra: provider: terraform
Добавьте все
.tf
файлы в каталог, найденныйinfra
в корне проекта.Запустите
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 использует сохраненные данные состояния для отслеживания управляемых ресурсов.
Сценарии включения удаленного состояния:
- Разрешить общий доступ к данным состояния и разрешить нескольким пользователям работать вместе с этой коллекцией ресурсов инфраструктуры.
- Чтобы избежать предоставления конфиденциальной информации, включенной в файл состояния
- Уменьшение вероятности случайного удаления из-за локального хранения состояния
Включение удаленного состояния
Убедитесь, что настроена учетная запись хранения удаленного состояния.
Добавьте новый файл, вызываемый
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}" }
Обновление
provider.tf
, найденного в папкеinfra
, чтобы установить серверную часть удаленной# Configure the Azure Provider terraform { required_version = ">= 1.1.7, < 2.0.0" backend "azurerm" { }
Выполните команду
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
Выполните следующую
azd
команду в рамках обычного рабочего процесса. При обнаруженииazd
удаленного состояния инициализирует Terraform с настроенной конфигурацией серверной части.Чтобы поделиться средой с коллегами, убедитесь, что они выполняются
azd env refresh -e <environmentName>
для обновления параметров среды в локальной системе и выполните шаг 4, чтобы добавить конфигурацию в.env
файл.
См. также
- Дополнительные сведения о зависимости Terraform от Azure CLI.
- Дополнительные сведения о удаленном состоянии см. в разделе о состоянии Terraform в служба хранилища Azure.
- Шаблон: React Web App с Node.js API и MongoDB (Terraform) в Azure