我们可以使用资源的计数参数销毁 terraform 创建的所有资源吗?
Can we destory all the resources created by terraform using count parameter of resources?
我知道我们可以使用它的 terraform destory
命令销毁 terraform 创建的资源,但假设我不想使用该功能并且我只有 apply
选项可用。
因为我们可以传递 count
参数来创建多个资源实例,我看到通过将计数值设置为 0
可以终止这些实例。
例如,
resource "aws_instance" "web" {
ami = data.aws_ami.ubuntu.id
instance_type = "t3.micro"
count = "0"
tags = {
Name = "HelloWorld"
}
}
是否可以通过将count参数设置为0来销毁所有类型的资源?它还会处理破坏其他资源的依赖性吗? (通过破坏aws_security_group
来破坏aws_security_group_rule
)
考虑到我没有可用的 terraform destroy
选项,这是终止资源的好做法吗?或者有没有更好的方法来执行类似的操作?
按照您建议的方式使用 Apply 是修改基础结构时破坏资源的常用方法。当您想要完全清理时,“销毁”选项更适用。
设置 count=0 是一种受支持的方法,可以销毁在该块中创建的所有资源及其依赖关系,但如果其他资源块间接依赖于该计数,这可能 运行 变得复杂。
然而,简单地完全移除块(以及相关资源块)也会在下一次应用时销毁它们 运行。这将是通常的做法,除非它只是临时销毁,有代码重用的考虑,或者你需要销毁供应商才能执行。
我知道我们可以使用它的 terraform destory
命令销毁 terraform 创建的资源,但假设我不想使用该功能并且我只有 apply
选项可用。
因为我们可以传递 count
参数来创建多个资源实例,我看到通过将计数值设置为 0
可以终止这些实例。
例如,
resource "aws_instance" "web" {
ami = data.aws_ami.ubuntu.id
instance_type = "t3.micro"
count = "0"
tags = {
Name = "HelloWorld"
}
}
是否可以通过将count参数设置为0来销毁所有类型的资源?它还会处理破坏其他资源的依赖性吗? (通过破坏aws_security_group
来破坏aws_security_group_rule
)
考虑到我没有可用的 terraform destroy
选项,这是终止资源的好做法吗?或者有没有更好的方法来执行类似的操作?
按照您建议的方式使用 Apply 是修改基础结构时破坏资源的常用方法。当您想要完全清理时,“销毁”选项更适用。
设置 count=0 是一种受支持的方法,可以销毁在该块中创建的所有资源及其依赖关系,但如果其他资源块间接依赖于该计数,这可能 运行 变得复杂。
然而,简单地完全移除块(以及相关资源块)也会在下一次应用时销毁它们 运行。这将是通常的做法,除非它只是临时销毁,有代码重用的考虑,或者你需要销毁供应商才能执行。