是否仍然需要忽略对资源输出的更改?或者告诉terraform不要刷新它?
我使用的Terraform资源返回一个state_info输出(字符串映射),该输出可以由terraform以外的进程修改。我想忽略这些变化。这有可能吗。
resource "aiven_vpc_peering_connection" "this" {
lifecycle {
ignore_changes = [
state_info
]
}
}state_info正在被设置为Terraform之外的null。我在其他地形资源中使用state_info。在我运行的后续地形计划中,aiven_vpc_peering_connection.this.state_info is empty map of string失败了
发布于 2020-10-12 19:09:52
ignore_changes机制指示Terraform在将配置中的值与前一状态快照中的值进行比较时忽略特定的参数,因此它不会对仅保存在先前状态的属性产生任何影响,因为这些属性不是显式可配置的。
听起来,您需要的是让Terraform在更新先前的状态以匹配远程对象(“刷新”步骤)时忽略特定的参数,这样结果最终将是来自远程API的新内容和以前保存在状态中的内容的混合。Terraform没有实现这一目标的机制:刷新后存储在状态中的值正是提供者返回的值。这种保证对于某些资源类型可能很重要,因为保留一个参数的旧值,而允许其他参数更改,可能会使结果不一致,例如,如果以多种不同的方式表示相同的信息。
最接近您所描述的值是使用上游资源导出的值,然后在最终使用该值的资源上指定ignore_changes,告诉Terraform在比较下游对象及其配置时忽略上游对象中的更改。
https://stackoverflow.com/questions/64319242
复制相似问题