【问题标题】:Merging maps with variables in Terraform在 Terraform 中将地图与变量合并
【发布时间】:2021-05-16 17:24:36
【问题描述】:

运行 Terraform v0.11.3,我正在尝试使用 merge() 函数将两个地图合并为一个地图。但是我无法正确使用语法。 merge() 是否支持使用动态变量?

  tags = "${merge({
    Name         = "${var.name}"
    Env          = "${var.environment}"
    AutoSnapshot = "${var.auto_snapshot}"
  }, "${var.tags}")}"

【问题讨论】:

    标签: dictionary merge terraform


    【解决方案1】:

    TF 0.11 中merge 的语法显示为here

    ${merge(map("a", "b"), map("c", "d"))} 
    

    所以在你的情况下,你应该有如下的东西:

    tags = "${merge(map("Name", var.name,
                        "Env", var.environment,
                        "AutoSnapshot", var.auto_snapshot
                   ), var.tags)}"
    

    【讨论】:

    • 啊,非常感谢。 map() 让我失望了,而不是仅仅使用 {}
    【解决方案2】:

    在 Terraform > 0.12 中,可以这样做:

    tags = merge(tomap({
        Name = var.name,
        Env  = var.environment,
        AutoSnapshot = var.auto_snapshot }),
        var.tags,
    )
    

    【讨论】:

      猜你喜欢
      • 2022-01-25
      • 2020-10-13
      • 1970-01-01
      • 1970-01-01
      • 2019-12-07
      • 2021-07-20
      • 1970-01-01
      • 2022-11-09
      • 2022-08-19
      相关资源
      最近更新 更多