首页 > 解决方案 > 如何通过对资源进行手动更改来更新 terraform 状态

问题描述

我已经在 AWS 上配置了一些资源,其中也包括 EC2 实例,但之后我们为这些实例附加了一些额外的安全组,这些实例现在被 terraform 检测到,它说它会根据配置文件回滚它。

假设我有以下代码将 SG 附加到我的 EC2

vpc_security_group_ids = [“sg-xxxx”]

但现在我的问题是如何更新 terraform.tfstate 文件,使其不应该分离手动附加的安全组:

我可以解决如下:

  1. 我将使用terraform refresh刷新 terraform 状态文件,这将更新状态文件。
  2. 然后我必须使用手动附加的安全组 ID 手动更新我的 terraform 配置文件

但是如果我们有一个复杂的场景,那么对于一种小型设置是可能的,那么我们在 terraform 中是否有任何其他机制可以检测漂移并更新它

谢谢 !!

标签: amazon-web-servicesterraform

解决方案


当检测到 AWS 上的漂移时,Terraform 不会更新您的源代码。

你提到的过程是正确的:

  1. 将 AWS 中的手动更改报告到 Terraform 代码中
  2. 做一个terraform plan。它将刷新状态并显示是否仍有差异

推荐阅读