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

Terraform中如何为map类型变量定义默认值?语法规范答疑

Terraform Map类型变量默认值写法合法性确认

场景示例

用户在input.tfvars中定义的project变量:

project = {
  name = "sampleproject"
  team = "Code"
}

在variables.tf中,有两种默认值写法:
写法1(键名无引号):

variable "project"{
  type = map(string)
  default ={
    name = "defaultproject"
    team = "defaultteam"
  }
}

写法2(键名带引号):

variable "project"{
  type = map(string)
  default ={
    "name" = "defaultproject"
    "team" = "defaultteam"
  }
}

结论

这两种写法都是完全合法且有效的,Terraform的HCL语法同时支持这两种map键的定义方式。

原因说明

HCL(HashiCorp配置语言)对map键名的规则如下:

  • 当键名是合法标识符(由字母、数字、下划线组成,且不以数字开头)时,引号可以省略,比如name、team这类符合规则的键名;
  • 如果键名包含特殊字符(如空格、连字符、@等),则必须用引号包裹,比如"project-name"、"team id"。

在你的示例中,name和team都是合法标识符,所以两种写法的效果完全一致,Terraform会解析出相同的map默认值。

内容的提问来源于stack exchange,提问作者Vishal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 02:15:38