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

Terragrunt无法识别项目新增output 仍可读取已删除的旧输出变量

这是Terragrunt的依赖输出缓存机制导致的问题。
Terragrunt为了提升执行效率,会将所有依赖模块的outputs结果缓存到本地.terragrunt-cache目录中,同时依赖模块的outputs只有在对应模块执行过apply写入state后才会正式生效。你遇到的两个现象的原因分别是:

  1. 新增output无法识别:你只修改了analytics_app模块的outputs源码,没有重新apply该模块,新的output字段没有写入到Terraform state中,同时本地缓存还是旧的output结构,所以读取不到新字段。
  2. 已删除的旧output仍可读取:旧的缓存和state中仍然保留了之前apply生成的service_name值,只要没有重新apply该模块删除这个output、也没有清理缓存,Terragrunt就可以读到旧字段的值。

解决步骤如下:

  • 首先进入analytics_app模块对应的terragrunt工作目录,执行terragrunt apply,将新增的app_service_name、sidecar_service_name两个output写入到Terraform state
  • 回到你当前编写的auto_scaling模块的terragrunt目录,执行terragrunt cache delete清除本地缓存,也可以直接执行terragrunt plan --terragrunt-update-outputs强制拉取所有依赖的最新output
  • 再次执行plan/apply操作即可正常识别新增的output字段

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 09:45:03