全书目录

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

第十二章:依赖关系 —— 蓝图里没写施工顺序,但系统能看懂先后

1 分钟 203 字 第 921 / 962 个阅读单元

很多人刚学 Terraform,会问:

“我没写先创建 VPC 再创建子网,Terraform 怎么知道顺序?”

答案是:

它通过依赖图推导。

例如:

hcl
resource "aws_vpc" "main" {
  cidr_block = "10.0.0.0/16"
}

resource "aws_subnet" "app" {
  vpc_id     = aws_vpc.main.id
  cidr_block = "10.0.1.0/24"
}

因为 aws_subnet.app 用了 aws_vpc.main.id,所以 Terraform 知道:

text
先建 VPC
再建子网

这和脚本的最大差异就在这里。

text
脚本
= 你手写顺序

Terraform
= 你描述关系,系统推导顺序

当然,极少数情况下也可以用:

hcl
depends_on = [...]

但一般不应该滥用。 因为 Terraform 最推荐的是:

优先通过真实引用表达依赖。