代码之家  ›  专栏  ›  技术社区  ›  Kit Sunde

如何将地图值与地形组合起来?

  •  0
  • Kit Sunde  · 技术社区  · 7 年前

    我试过了:

    variable "records" {
      type = "map"
      default = {
        "mediapop.co." = ["www.mediapop.co"],
        "mediapopinc.com." = ["mediapopinc.com", "www.mediapopinc.com"] ,
        "mediapop.sg." = ["mediapop.sg", "www.mediapop.sg"],
      }
    }
    
    output "records" {
      value = "${flatten(values(var.records))}"
    }
    

    但是 values() 只允许平面地图。有解决办法吗?

    1 回复  |  直到 7 年前
        1
  •  3
  •   BMW    7 年前

    使用 transpose :

    output "transpose" {
      value = "${transpose(var.records))"
    }
    
    output "values" {
      value = "${keys(transpose(var.records)))"
    }
    

    输出

    transpose = {
      mediapop.sg = [mediapop.sg.]
      mediapopinc.com = [mediapopinc.com.]
      www.mediapop.co = [mediapop.co.]
      www.mediapop.sg = [mediapop.sg.]
      www.mediapopinc.com = [mediapopinc.com.]
    }
    
    values = [
        mediapop.sg,
        mediapopinc.com,
        www.mediapop.co,
        www.mediapop.sg,
        www.mediapopinc.com
    ]