繁体   English   中英

Terraform 动态变量查找

[英]Terraform dynamic variable lookup

我正在编写一些 terraform 代码,它根据名为 fortios_version 的变量查找 ami。 我似乎不明白如何让 map 传回 map 值。 这是我的代码...

variable "fortios_version" {
  type        = string
}

variable "fortios_map" {
  type = map
  default = {
    "7.2.0" = "fgtvmbyolami-7-2-0"
    "6.4.8" = "fgtvmbyolami-6-4-8"
  }
}

variable "fgtvmbyolami-7-2-0" {
  type = map
  default = {
    us-east-1      = "ami-08a9244de2d3b3cfa"
    us-east-2      = "ami-0b07d15df1781b3d8"
  }
}

我的aws实例代码...

ami                     = lookup(lookup(var.fortios_map[var.fortios_version]), var.region)

我的变量....

fortios_version: "7.2.0"

我希望我说得通。 我整天都在玩不同的变化,但没有运气。 任何帮助表示赞赏。

谢谢,

克里斯·爱德华兹

您不能根据 fortios_map 的 output 动态引用fgtvmbyolami-7-2-0 fortios_map 最好重新组织你的变量:

variable "fortios_version" {
  type        = string
}

variable "fortios_map" {
  type = map
  default = {
    "7.2.0" = "fgtvmbyolami-7-2-0"
    "6.4.8" = "fgtvmbyolami-6-4-8"
  }
}

variable "amis" {
  type = map
  default = {
    "fgtvmbyolami-7-2-0"  =  {
          us-east-1      = "ami-08a9244de2d3b3cfa"
          us-east-2      = "ami-0b07d15df1781b3d8"
        },
    "fgtvmbyolami-6-4-8"  =  {
          us-east-1      = "ami-08a92333cfa"
          us-east-2      = "ami-0b07dgggg781b3d8"
        }        
  }
}

然后

ami  = var.amis[var.fortios_map[var.fortios_version]][var.region]

您可以将此扩展为广告lookup ,以便为每个 map 设置一些默认值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM