为什么需要远程保存 terraform 状态文件?

why is it required to persist terraform state file remotely?

我是 Terraform 的新手。有人可以解释一下吗

why do we need to save .tfstate file in local or remote storage,

terraform apply 总是用新的基础设施刷新状态文件。

提前致谢。

状态文件跟踪 Terraform 管理的资源,无论是创建的还是导入的。 Terraform 的刷新仅检测托管资源中的漂移,不会检测您是否在状态文件之外创建了新资源。

如果您丢失了状态,您将最终得到不受 Terraform 管理的孤立资源。如果出于某种原因,您对此表示满意,或者您有其他方式与其他团队共享状态 members/CI 并进行备份,那么您就可以了。

当然,使用 Terraform 的远程状态可以巧妙地解决这些问题,所以如果您关心这些事情中的任何一个或者认为您将来可能需要(您可能会),您应该使用它。

我会添加一个更面向开发者的视角来帮助理解。

想想你正在使用 yarnnpm 做一个 NodeJS 应用程序,package.json 就像你的 tf 文件,而 yarn.lockpackage-lock.json.

不过不要照字面意思理解,因为地形状态文件具有物理基础含义。