Terragrunt执行plan报错:无法评估目录符号链接
问题原因
执行terragrunt plan时报错是因为Terragrunt的工作机制:它会将terraform { source = "../../" }指定的live目录代码复制到临时工作目录。此时live/main.tf里的source = "../module/"相对路径在临时环境中失效,无法定位到项目根目录下的module文件夹。
解决方法
推荐使用Terragrunt内置函数动态获取根路径,避免硬编码:
在
live目录新增terragrunt.hcl文件
这个文件用来让Terragrunt识别项目层级,内容可以为空,也可添加通用配置:# 通用Terragrunt配置占位符修改
live/main.tf中的module源路径
用get_parent_terragrunt_dir()函数动态获取项目根目录,修正module的source:module "test_terragrunt" { source = "${get_parent_terragrunt_dir()}/module/" name = var.name }
验证操作
回到live/env/dev目录,重新执行terragrunt plan,此时Terragrunt会正确解析module的路径,报错即可消除。
内容的提问来源于stack exchange,提问作者Gaurang Shah
相关产品推荐
相关产品推荐

