我知道我们可以使用terraform的terraform destory
命令销毁它创建的资源,但假设我不想使用该功能,我只有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是一种受支持的销毁在该块中创建的所有资源及其依赖项的方法,但如果其他资源块间接依赖于该计数,则可能会遇到复杂情况。
然而,简单地完全删除块(以及依赖的资源块(也会在下一次应用程序运行时破坏它们。这将是通常的做法,除非这只是一个临时销毁,有代码重用的考虑,或者您需要销毁提供程序来执行。