如何在Terraform中基于条件从模块输出值构建映射Map
完全可以实现,Terraform的for表达式原生支持可选的if过滤子句,你写的伪代码逻辑完全正确,只需要补全is_needed的属性引用路径即可:
locals { map_of_needed_values = tomap({ for instance in module.my_module : instance.key => instance.value if instance.is_needed }) }
补充说明:
- 迭代过程中Terraform会对每一个模块实例的
is_needed输出值做判断,只有值为true的实例对应的键值对才会被加入最终生成的Map - 你也可以根据需求扩展
if后的判断逻辑,支持多条件组合过滤,比如同时校验值的合法性:if instance.is_needed && instance.value != null
内容的提问来源于stack exchange,提问作者Jelkimantis
相关产品推荐
相关产品推荐

