Terraform中将yamldecode解析结果转为元组列表的实现方法
实现代码
你可以直接通过Terraform的for表达式配合类型转换函数实现,完整示例如下:
locals { # 解析目标YAML文件 parsed_data = yamldecode(file("myfile.yaml")) # 遍历解析后的数据,构造元组列表 target_tuple_list = [ for entry in local.parsed_data.test : tuple([ entry.name, tonumber(entry.number), entry.description ]) ] }
效果验证
你可以通过output输出验证结果:
output "final_result" { value = local.target_tuple_list }
执行terraform apply后输出的结果为:
final_result = [ ("A", 1, "Bla"), ("B", 2, "Bla"), ]
逻辑说明
parsed_data.test对应解析后的YAML结构中test键对应的列表数据,for表达式遍历列表中每个map元素tonumber()将YAML中字符串格式的number字段转换为数值类型,匹配你要的输出要求tuple()函数将三个属性值封装为元组类型,最终生成你需要的元组列表结构。
内容的提问来源于stack exchange,提问作者olivia
相关产品推荐
相关产品推荐

