我想在现有资源组中创建一个新的WebApp资源。 this question和this post解释了如何导入现有资源(而不是每次都创建新资源)
我能够使用以下命令导入我现有的资源组
terraform import azurerm_resource_group.rg-myResourceGroup /subscriptions/00000-my-subscription-id-0000000/resourceGroups/rg-myResourceGroup
执行此命令后,我可以看到已创建名为'terraform.tfstate'
的新文件。
{
"version": 3,
"terraform_version": "0.11.11",
"serial": 1,
"lineage": "-----------------------------",
"modules": [
{
"path": [
"root"
],
"outputs": {},
"resources": {
"azurerm_resource_group.rg-ResourceGroupName": {
"type": "azurerm_resource_group",
"depends_on": [],
"primary": {
"id": "/subscriptions/subscription-id-00000000000/resourceGroups/rg-hemant",
"attributes": {
"id": "/subscriptions/subscription-id-00000000000/resourceGroups/rg-hemant",
"location": "australiaeast",
"name": "rg-ResourceGroupName",
"tags.%": "0"
},
"meta": {},
"tainted": false
},
"deposed": [],
"provider": "provider.azurerm"
}
},
"depends_on": []
}
]
}
现在我的问题是如何在我的terraform.tfstate
中访问/引用/包含main.tf
resource "azurerm_resource_group" "rg-hemant" {
#name = it should be rg-ResourceGroupName
#location = it should be australiaeast
}
更新1
mysubscription1
”中有一个
资源组“ rg-exising
” webapp1
,
storageaccount1
因此,在terraform apply
操作rg-exising
之后,
资源下方
terraform apply
脚本添加) 4)请注意,我不希望Terraform创建(对于apply
)或删除(对于destroy
)属于rg-exising
的现有资源>
答案 0 :(得分:1)
您不是真的,您只需要将资源映射到tfstate中的状态,所以只需执行以下操作:
resource "azurerm_resource_group" "rg-hemant" {
name = 'rg-ResourceGroupName'
location = 'australiaeast'
}
和tf应该将此资源识别为状态文件中的资源
答案 1 :(得分:0)
在帖子中浏览更多内容,找到了解决方法here。
我们可以使用其他参数对销毁进行地形化,以明确提及要销毁的资源
terraform destroy -target RESOURCE_TYPE.NAME -target RESOURCE_TYPE2.NAME
注意:据我了解,在这种情况下,无需使用terraform import
命令