terraform import
это путь.Если у вас есть какие-либо настройки в вашем файле: просто удаляйте их до тех пор, пока вы полностью не импортируете службу приложения.
Полный учебник - с группой ресурсов вместо службы приложения, но принцип тот же: https://azurecitadel.com/automation/terraform/lab6/#lab-importing-resources
Grab the ID for the azure resource: id=$(az group show --name deleteme --query id --output tsv)
Создать пустой раздел для ресурса в новом файле import.tf
resource "azurerm_resource_group" "deleteme" {}
- Запустите команду импорта:
terraform import azurerm_resource_group.deleteme $id
terraform-labs$ terraform import azurerm_resource_group.deleteme $id
Acquiring state lock. This may take a few moments...
azurerm_resource_group.deleteme: Importing from ID "/subscriptions/2d31be49-d999-4415-bb65-8aec2c90ba62/resourceGroups/deleteme"...
azurerm_resource_group.deleteme: Import complete!
Imported azurerm_resource_group (ID: /subscriptions/2d31be49-d999-4415-bb65-8aec2c90ba62/resourceGroups/deleteme)
azurerm_resource_group.deleteme: Refreshing state... (ID: /subscriptions/2d31be49-d999-4415-bb65-8aec2c90ba62/resourceGroups/deleteme)
Import successful!
The resources that were imported are shown above. These resources are now in
your Terraform state and will henceforth be managed by Terraform.
- Выполните
terraform plan
, и вы должны увидеть некоторые ошибки, поскольку наш блок не заполнен - Выполнить
terraform state show azurerm_resource_group.deleteme
id = /subscriptions/2d31be49-d999-4415-bb65-8aec2c90ba62/resourceGroups/deleteme
location = westeurope
name = deleteme
tags.% = 0
- Добавьте аргумент имени и местоположение, используя переменную loc
- Повторите план terraform, и он не должен показывать ошибок и никаких запланированных изменений
- Ресурс полностью импортирован и находится под контролем Terraform.