【问题标题】:Terraform default map valuesTerraform 默认地图值
【发布时间】:2020-08-26 17:08:29
【问题描述】:

变量 map 的默认值是否与我提供给 terraform 的数据合并?

示例变量.tf:

variable "foo" {
  type = map
  default = {
    lorem = "ipsum"
    dolor = "sit"
  }
}

并提供了 foo.tfvars:

foo = {
  dolor = "changed"
  amet = "consectetur"
}

${foo.lorem} 还会存在吗?

${foo.dolor} 会被“改变”吗?

${foo.amet} 是否可用?

【问题讨论】:

  • 您使用的是哪个版本的 Terraform?
  • @ydaetskcoR 0.12.20

标签: variables merge terraform


【解决方案1】:

不,没有合并行为。如果为变量设置显式值,则根本不使用默认值。

如果您需要与其他值合并,那么您可以使用the merge function 明确地编写:

variable "foo" {
  type    = map(string)
  default = {}
}

locals {
  foo = merge(
    tomap({
      lorem = "ipsum"
      dolor = "sit"
    }),
    var.foo,
  )
}

通过上述配置,您可以在模块的其他地方参考var.foo 以获取调用者提供者的确切值,或参考local.foo 以获取将调用者的映射与您的默认值映射合并的结果。

【讨论】:

    猜你喜欢
    • 2021-05-22
    • 2011-02-09
    • 1970-01-01
    • 2021-04-18
    • 2021-11-08
    • 2013-10-07
    • 2020-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多