如何定义/引用要在Terragrunt部署过程中重用的一组变量?目前,我在部署的每个级别上都在locals{}块中指定相同的值(例如,订阅、locals{}、环境等),但这与使用Terragrunt的方式完全相反。
我的文件夹结构类似于:
├── Folder A
│ └── main.tf
│ └── terragrunt.hcl
├── Folder B
│ └── main.tf
│ └── terragrunt.hcl
└── global_vars.yaml
└── main.tf
└── terragrunt.hcl我阅读了本地人特性,这样在根目录中创建了global_vars.yaml,内容如下:
environment = "prod"并尝试向父terragrunt.hcl添加一个块:
locals {
global_vars = yamldecode(file(find_in_parent_folders("global_vars.yaml")))
}然后在FolderA main.tf中:
locals {
...
environment = local.common_vars.environment
...
}但我得到的错误是,没有声明名为"global_vars“的本地值。
为了增加另一层乐趣,我可能希望在子级别覆盖给定的变量--但我觉得一旦我能够解决这个声明问题,其余的就应该非常容易(...right?)。
发布于 2021-07-29 17:42:53
结果我把事情搞得太复杂了。要解决这个问题,我必须修复我的yaml格式,才能真正成为一个映射。
locals:
environment : "dev"并在子程序main.tf的locals{}块中添加一行:
global_vars = yamldecode(file("../../global_vars.yaml"))然后我引用如下的值:
environment = local.global_vars.locals.environment也许有更漂亮的方法去做,但这个是我的!
https://stackoverflow.com/questions/68569018
复制相似问题