gpt4 book ai didi

terraform - 让 Terraform 始终更新资源,即使没有任何更改

转载 作者:行者123 更新时间:2023-12-04 15:22:05 30 4
gpt4 key购买 nike

我有一个 Terraform 提供程序,它针对可以带外“丢失”API 对象的 API。我已经与供应商谈过,他们在他们的积压工作中说了这一点,但似乎对实际修复它没有任何兴趣。

Terraform 提供程序也不使用数据源,仅使用远程状态,这意味着它实际上无法检测到该字段丢失或任何东西。

如果我强制 terraform 通过更改状态来更新资源,该字段会返回,但是它很乱。是否有像“ignore_changes”这样的东西总是更新资源?

最佳答案

托管资源实例的 Terraform 提供者 API 操作之一是 ReadResource,它在 Terraform SDK 中映射到 schema.Resource 中的 Read 回调。 .

此函数的目的是使用在上次操作结束时记录在 Terraform 状态中的信息来生成一个新对象,该对象描述远程系统中对象的当前状态。除了检测对象本身属性的“漂移”外,此功能还可能检测并报告远程对象不再存在。

在当前的 SDK API 中,Read 实现可以通过调用 d.SetId 报告对象不再存在。 ID 为空字符串,因为 SDK 要求任何有效对象都具有非空 ID。

Terraform 调用 ReadResource 作为在 terraform plan 中准备计划的一部分,或者在无参数 terraform apply 的隐含计划步骤中.因此,如果提供者能够检测到对象不再存在或自上次操作结束以来其任何属性是否已更改,并发出信号。然后,Terraform 将在与配置进行比较以生成建议的计划时考虑这种漂移。

Terraform 的工作流通常期望所有资源都集中在一个稳定状态,以便用户可以运行 terraform plan 并看到没有待处理更改的消息。提供者不断对每个计划提出更多更改的情况通常被认为是提供者中的错误,因此我不建议将其作为您问题的解决方案,并且 Terraform 没有旨在提供此类功能的功能。

关于terraform - 让 Terraform 始终更新资源,即使没有任何更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63079886/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com