有一些资源。资源组,应用程序服务,存储帐户... 我已经使用Azure门户或Powershell创建了这些资源。 然后,我编写了一个terraform脚本来添加 other 资源并 update 一些现有资源。特别是我对更新应用程序服务感兴趣。我想向其中添加一些设置和托管身份。 发生的事情是terraform说:“看,已经有一个具有您指定名称的应用程序服务”。 我尝试使用“ terraform导入”将现有的应用程序服务绑定到我的terrafom状态文件,但是这样做是因为我丢失了已放入terraform文件中的设置。
我该如何解决这个问题?谢谢。
答案 0 :(得分:1)
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