terraform模块如何根据调用者传递的参数(变量)返回不同的值
我有这样一个地形模块:terraform模块如何根据调用者传递的参数(变量)返回不同的值,terraform,Terraform,我有这样一个地形模块: variable "whitelist_map" { type = "map" default = { "10.1.1.1/32" = "alb_external_facing" "10.2.2.2" = "jenkins_lb" } } output "whitelist_map" { value = "${var.whitelist_map}" } 但是,我希望whitelist_map根据变量(比如callervar)
variable "whitelist_map" {
type = "map"
default = {
"10.1.1.1/32" = "alb_external_facing"
"10.2.2.2" = "jenkins_lb"
}
}
output "whitelist_map" {
value = "${var.whitelist_map}"
}
但是,我希望whitelist_map根据变量(比如callervar)返回两个可能值中的一个。如果调用者的值为1,则返回一个值。如果调用者的值为2,则返回另一个值
调用者的值将从调用者地形代码中下来
我该怎么做
谢谢 我认为您所需要的只是一个列表,因为Map并没有提供类似数组的结构,而是提供类似于存储的键值
正如您所说,此代码需要有一个索引才能访问列表项。索引变量名为foo,是数字类型。其余部分由listmapstring完成,它以字符串类型提供列表的映射
在最后一个代码段中,您可以使用前面提供的索引访问该变量
variable "foo" {
type = number
}
variable "whitelist_list" {
type = list(map(string))
default = [
{ "10.1.1.1/32" = "alb_external_facing" },
{ "10.2.2.2" = "jenkins_lb" }
]
}
output "whitelist" {
value = var.whitelist_list[var.foo]
}