Terragrunt如何获取上级两级目录名称?以vpc-test为例
解决方案:提取路径中的
vpc-test作为VPC名称 你的文件路径是/rootdir/vpc-test/networking/vpc/terragrunt.hcl,get_terragrunt_dir()会返回Terragrunt配置文件所在的目录:/rootdir/vpc-test/networking/vpc。之前的写法只取了上一级目录的basename,所以得到networking。要拿到vpc-test,可以用以下两种方法:
方法1:嵌套多层dirname和basename
直接嵌套两次dirname,再取basename:
${basename(dirname(dirname(get_terragrunt_dir())))}
- 第一次
dirname(get_terragrunt_dir())→/rootdir/vpc-test/networking - 第二次
dirname(...)→/rootdir/vpc-test - 最后
basename(...)→vpc-test
方法2:用split拆分路径(更灵活)
把路径按/拆分后,直接取对应位置的元素:
${split("/", get_terragrunt_dir())[2]}
拆分后的路径数组是["", "rootdir", "vpc-test", "networking", "vpc"],索引2对应的就是vpc-test。如果目录结构固定,这种方法可读性更强。
内容的提问来源于stack exchange,提问作者S1c0r4x
相关产品推荐
相关产品推荐

