使用depends_on时,Terraform会等待整个依赖树还是仅显式依赖?
Terraform依赖传递与资源执行顺序问题
场景回顾
- 已通过
terraform apply创建资源B - 修改配置,新增资源A和C,三者无原生依赖关系
- 通过
depends_on显式声明:B依赖A,C依赖B - 再次执行
terraform apply
实际执行逻辑
实际是第二种情况:Terraform会识别出C对A的传递依赖,先创建A,完成后再创建C。
原因说明
Terraform的执行顺序基于配置中声明的完整依赖关系构建的依赖图,而非仅依赖资源当前的存在状态。尽管B已经存在于状态文件中,但配置里的depends_on定义了A → B → C的依赖链,Terraform需要确保所有配置层面的依赖约束都被满足。
在这个场景中,B的配置明确依赖A,即使B已存在,Terraform仍会先完成A的创建(满足B的依赖约束),之后才会执行C的创建操作——因为C的配置依赖B,而B的配置依赖A,传递依赖关系会被Terraform识别并强制执行。
内容的提问来源于stack exchange,提问作者Kjeld Schmidt
相关产品推荐
相关产品推荐

