伙计们!
我的目标是将YAML文件中的配置收集(合并(到一个Terraform映射中。例如,我有以下2个YAML:
config/file1.yml
section1: property11: value11 property12: value12
config/file2.yml
section2: property21: value21 property22: value22
我需要的是如下所示的配置(为了可读性,下面用YAML表示,但当然应该是地形图(:
section1:
property11: value11
property12: value12
section2:
property21: value21
property22: value22
我现在想到的是:
locals {
config = { for yaml_file in fileset("${path.module}/config/", "*.yml"):
yaml_file => file("${path.module}/config/${yaml_file}"
}
}
但我不确定如何进一步推进。你能给我指个正确的方向吗。
您可以使用merge
函数将yaml地图组合成一个地形地图。
locals {
base_path = "${path.module}/config"
files = fileset(local.base_path, "*.yml")
file_content = [for f in local.files : yamldecode(file("${local.base_path}/${f}"))]
terraform_map = merge(local.file_content...)
yaml_output = yamlencode(local.terraform_map)
}
output "result" {
value = local.file_content
}