我已经创建了资源组(未使用我的代码创建)。
我运行terraform apply并创建了我的基础设施。但是当我运行terraform destroy时-控制台说我的资源组也应该删除。这不应该发生,因为不仅我的基础设施位于此资源组中。
我已尝试按照此处https://stackoverflow.com/a/47446540/10912908所述使用Terraform导入,并获得了与以前相同的结果。
此外,我尝试仅使用名称来定义资源组,但是它不起作用(。Terraform destroy会删除该资源
resource "azurerm_resource_group" "testgroup" {
name = "Test-Group"
}
答案 0 :(得分:1)
您不必在配置中包括资源组资源,这样资源组就不会被破坏(因为配置中的所有资源都将被破坏)。如果您依赖该资源的输出,则可以改用数据资源。
data "azurerm_resource_group" "test" {
name = "Test-Group"
}
OP还需要从状态文件中删除资源组。
答案 1 :(得分:0)
此bash脚本可以工作:
terraform state list | while read line
do
if [[ $line == azurerm_resource_group* ]]; then
echo $line " is a resource group and will not be deleted!"
else
echo "deleting: " $line
terraform destroy -target $line -auto-approve
fi
done
它列出了由terraform管理的所有资源,然后为每个条目运行删除脚本,但包含“ azurerm_resource_group *”的行除外