我有一堆模块。我想将它们全部从
module "foo" {
# whatever
}
到
module "foo" {
count = 1 # because I want to make creating the module conditional, and this is the only way to do it
# whatever
}
terraform plan
告诉我它将拆除这些模块创建的所有资源并创建新的资源,大概是因为计数为 1 的资源与没有计数的资源不一样,对吗? 有办法避免这种情况吗?
不幸的是,在模块中使用
for_each
或count
总是会改变 Terraform 中的资源地址,这将导致重新创建资源(除非你全部删除terraform state mv
它们)。假设您在这里使用自己的模块而没有使用第三方模块,则可以通过在模块内的每个资源中添加条件来解决该问题。
IE
在模块内的(所有)资源中,添加如下条件:
这不会改变资源地址