You need to enable JavaScript to run this app. Terraform不同路径资源如何配置depends_on跨文件依赖关系
优惠活动
大模型
产品
解决方案
定价
更多

Terraform不同路径资源如何配置depends_on跨文件依赖关系

Terraform 跨目录资源依赖引用方法

首先明确:Terraform 不支持直接跨不同模块目录引用资源,你当前目录中example是独立的 Terraform 配置目录,根目录是被调用的模块,需要通过模块输出+模块引用的方式传递依赖,操作步骤如下:

  • 第一步:在根目录新增outputs.tf文件(如果已有则直接追加),把需要被外部依赖的资源暴露为模块输出,示例(假设根目录main.tf中依赖资源为aws_iam_role.app_role):
# 可仅输出整个资源对象供depends_on使用
output "app_role" {
  value = aws_iam_role.app_role
}
# 如果需要用到资源属性也可以单独输出对应字段
output "app_role_arn" {
  value = aws_iam_role.app_role.arn
}
  • 第二步:在example/main.tf中先声明对根目录模块的引用:
module "root_module" {
  source = "../" # 路径指向根目录,即引用根模块
  # 这里填写根模块要求传入的所有变量值
}
  • 第三步:在example目录下的资源depends_on参数中直接引用模块输出的资源即可:
resource "aws_s3_bucket_policy.example_policy" "this" {
  # 其他资源配置
  depends_on = [module.root_module.app_role]
}

注意:如果你只是在资源参数中用到根模块资源的属性,不需要显式写depends_on,Terraform 会自动识别隐式依赖:

resource "aws_iam_role_policy_attachment.example_attach" "this" {
  role       = module.root_module.app_role.name
  policy_arn = "arn:aws-cn:iam::aws:policy/AdministratorAccess"
}

内容的提问来源于stack exchange,提问作者Alex-

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 18:57:01