You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Terragrunt跨模块传参失败求助:依赖模块无输出检测异常

排查Terragrunt跨模块传递输出失败的问题

针对你遇到的「依赖模块无输出」错误,按以下步骤逐一排查:

1. 确认依赖模块的状态文件可正常读取输出

Terragrunt是从依赖模块的Terraform状态文件(本地或远程)读取输出值,而非仅靠outputs.tf定义:

  • 进入networks-vpc目录,执行terraform output,确认能正常输出你列出的public_subs、vpc_id等值。
  • 如果用了远程状态存储(如S3),执行terragrunt output,确认Terragrunt能正确拉取远程状态的输出。若此处报错,检查远程状态的权限、配置是否正确。

2. 简化依赖配置,排除冲突

你的ec2-amz-lnx/terragrunt.hcl同时配置了dependency和dependencies块,两者功能有重叠,可能导致解析问题:

  • 暂时注释掉dependencies块,只保留dependency块,重新执行tg run-all plan:
    // dependencies {
    //   paths = ["../networks-vpc"]
    // }
    

3. 验证依赖路径的正确性

虽然相对路径../networks-vpc看起来正确,但可尝试用绝对路径测试,排除路径解析异常:

dependency "shared_infra" {
  config_path = "/Users/xxx/sri/aws/Infrastructure/apps/networks-vpc"
}

4. 检查环境与工作区一致性

确保执行tg run-all plan时的环境配置与networks-vpc模块应用时一致:

  • 确认AWS_PROFILE、TF_WORKSPACE等环境变量未变更,避免Terragrunt读取到错误环境的状态文件。
  • 检查networks-vpc和ec2-amz-lnx是否加载了同一环境的tfvars配置(如environments/ap-southeast-2/npe/apps/下的文件)。

5. 刷新依赖模块状态并重试

进入networks-vpc目录,执行terragrunt refresh确保状态文件与实际基础设施同步,然后回到apps目录重新执行tg run-all plan。

6. 验证单模块执行是否正常

先单独执行ec2-amz-lnx模块的plan,确认依赖输出能被正确读取:

cd ec2-amz-lnx
terragrunt plan

如果单独执行正常,但run-all失败,可能是run-all的状态同步机制问题,可尝试先单独apply依赖模块,再执行run-all。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 06:15:46