您可以有条件地将生命周期块应用到 Terraform 0.12 中的资源吗?
例如,如果我想根据传递给模块的参数将此块添加到 AWS ASG 资源。
lifecycle {
ignore_changes = [
target_group_arns,
]
}
不,你不能。
来自生命周期元参数文档 https://www.terraform.io/language/meta-arguments/lifecycle#literal-values-only:
The lifecycle
设置都会影响 Terraform 如何构造和遍历依赖关系图。因此,只能使用文字值,因为对于任意表达式求值来说处理发生得太早。
虽然这并没有明确禁止for_each或其他dynamic使用这将实现您的目标,这样的构造直到稍后执行时才能确定。
当前最好的解决方法是资源的两个单独的副本,一个包含此块,另一个不包含:
lifecycle {
ignore_changes = [
target_group_arns,
]
}
希望 Terraform 的未来版本将支持动态生命周期块及其中的非常量表达式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)