You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 01:52:11