全书目录

第四十九篇:Terraform 完全指南 —— 基础设施蓝图总工局宇宙

第八章:State —— 总工局档案库,记录现实城市和蓝图之间的对应关系

1 分钟 373 字 第 917 / 962 个阅读单元

这一章是 Terraform 最关键、也最容易踩坑的地方。

State 是 Terraform 的施工档案库。

很多人刚学 Terraform,只看 HCL 代码,不理解 state,结果一上生产就出事。

因为 Terraform 不是只看蓝图文本。 它还必须知道:

  • 上一次到底建了什么
  • 这些资源在真实世界里的 ID 是什么
  • 蓝图里的哪个资源,对应现实中的哪个对象
  • 下次更新时该改谁、删谁、保留谁

这就是 state 的作用。

你可以把它理解成:

text
蓝图文件
= “这座城市应该长什么样”

state 文件
= “现实里已经建成了哪些对象,以及它们和蓝图怎么对应”

没有 state,总工局就像失忆了一样。

#为什么 state 这么重要

比如:

hcl
resource "aws_s3_bucket" "assets" {
  bucket = "software-city-assets-prod"
}

如果没有 state,Terraform 很难稳定判断:

  • 这个 bucket 是这份蓝图以前建的吗
  • 还是别的地方手动建的
  • 现在该创建新对象还是管理现有对象

所以 state 不是附属品。

它就是基础设施蓝图系统的记忆。