如何在Terraform中从yamldecode解析的字典列表提取cat列表
提取Terraform YAML配置中的颜色列表
你的YAML配置里abc是列表类型(开头的-标识这是列表元素),所以cfg_vars.abc返回的是包含单个VM配置的列表,而非直接的映射对象。之前的尝试错误在于引用了不存在的groups字段,且未处理abc的列表结构。
解决方案1:针对单个VM配置
如果确定abc列表仅包含一个元素,直接取第一个元素的cat字段即可:
list_color = try(cfg_vars.abc[0].cat, [])
解决方案2:针对多个VM配置(合并所有颜色)
如果abc列表可能包含多个VM,需要提取所有VM的cat列表并合并为一维列表:
list_color = flatten(try(cfg_vars.abc[*].cat, []))
abc[*].cat:用splat运算符遍历所有VM配置,提取每个的cat字段,得到嵌套列表flatten:将嵌套列表展开为扁平的一维列表try(..., []):处理字段不存在的场景,返回空列表避免报错
内容的提问来源于stack exchange,提问作者drmaa
相关产品推荐
相关产品推荐

