【发布时间】:2021-05-20 06:14:03
【问题描述】:
尝试了以下方法:
使用 terraform 创建资源(ec2)>>从 AWS 控制台手动编辑资源(更改类型)>>运行“terraform plan”>>显示内部执行“terraform refresh”后所需的更改但状态文件没有更新?
看起来像一些错误。
(文章状态刷新是自动完成的,应该会影响状态文件吗?- https://www.terraform.io/docs/cli/commands/plan.html)
我注意到手动运行“terraform refresh”会更新状态文件以反映基础设施的当前状态(然后将与配置文件,即所需状态进行比较)。
问候。
阿迪亚
【问题讨论】:
-
您为什么希望它更新状态文件?为什么你需要这种行为?通常状态文件将由
apply或destroy更新,这是 Terraform 实际进行更改的时间。正如您所注意到的,您可以运行terraform refresh来强制刷新并更新状态文件,但这通常不是必需的。 -
因为文档说“terraform plan”在内部运行“刷新”,这意味着状态文件应该更新以反映当前的基础设施。
-
@ydaetskcoR - OP 可以使用
-refresh=true标志,这与在计划之前运行tf refresh相同。我同意这不应该是必要的,除非你有其他错误,但这是可能的。 -
@AdityaGarg - 不,它没有这么说。第二段声明
This command is a convenient way to check whether the execution plan for a set of changes matches your expectations without making any changes to real resources or to the state。它确实运行了一次刷新,但它没有说它更新了状态文件,它明确声明它没有。 -
@SoftwareEngineer 对此表示感谢,第二段明确提到“状态”不受影响。所以总而言之,它不像普通的“地形刷新”
标签: terraform