Terraform中Map含Null值仅显示非空键是否为预期行为?
问题解答
这是Terraform的预期行为:默认情况下,Terraform会自动从映射字面量中移除值为null的键值对,所以当module.mod2.output_value返回null时,key2会被省略,最终输出仅保留key1。
如果想要保留包含null值的键,实现你期望的包含两个键的Map,有两种常用解决方法:
方法1:显式指定输出类型约束
通过为输出声明明确的类型,强制Terraform保留所有键,即使对应值为null。根据你的输出值实际类型调整type字段(比如map(string)、map(number)或通用的map(any)):
output "output_map" { value = { "key1" = module.mod1.output_value "key2" = module.mod2.output_value } type = map(any) }
方法2:使用for表达式构建映射
for表达式会完整保留所有输入的键值对,不会自动剔除值为null的项:
output "output_map" { value = { for k, v in { "key1" = module.mod1.output_value "key2" = module.mod2.output_value } : k => v } }
以上两种方法都能让你得到包含key1和key2的映射,其中key2的值为null。
内容的提问来源于stack exchange,提问作者codeforester
相关产品推荐
相关产品推荐

