【发布时间】:2021-08-20 01:13:39
【问题描述】:
我在我的 terraform 中设置了这些本地人。
locals {
subnet_config = {
config1 = {
private_subnets = [
cidrsubnet("${var.cidr_ip}/${var.cidr_range}", 3, 0),
cidrsubnet("${var.cidr_ip}/${var.cidr_range}", 3, 1),
cidrsubnet("${var.cidr_ip}/${var.cidr_range}", 3, 2),
]
public_subnets = [
cidrsubnet("${var.cidr_ip}/${var.cidr_range}", 3, 3),
cidrsubnet("${var.cidr_ip}/${var.cidr_range}", 3, 4),
cidrsubnet("${var.cidr_ip}/${var.cidr_range}", 3, 5),
]
},
config2 = {
private_subnets = [
cidrsubnet("${var.cidr_ip}/${var.cidr_range}", 2, 0),
cidrsubnet("${var.cidr_ip}/${var.cidr_range}", 2, 1),
cidrsubnet("${var.cidr_ip}/${var.cidr_range}", 2, 2),
]
public_subnets = [
cidrsubnet("${var.cidr_ip}/${var.cidr_range}", 5, 24),
cidrsubnet("${var.cidr_ip}/${var.cidr_range}", 5, 25),
cidrsubnet("${var.cidr_ip}/${var.cidr_range}", 5, 26),
]
}
}
}
locals {
subnet_env = {
default = local.subnet_config.config1,
web = local.subnet_config.config2,
}
}
我在 terraform vpc 模块中引用了上面的本地人。
module "vpc" {
...
private_subnets = lookup(local.subnet_env[var.business_unit], "private_subnets", local.subnet_env["default"]["private_subnets"])
public_subnets = lookup(local.subnet_env[var.business_unit], "public_subnets", local.subnet_env["default"]["public_subnets"])
...
当 local.subnet_env.business_unit 设置为“testthis”时,我希望 local.subnet_env.default 被选中,但我得到了这个。
Error: Invalid index
on .terraform/modules/base/base/vpc.tf line 12, in module "vpc":
12: private_subnets = lookup(local.subnet_env[var.business_unit], "private_subnets", local.subnet_env["default"]["private_subnets"])
|----------------
| local.subnet_env is object with 2 attributes
| var.business_unit is "testthis"
The given key does not identify an element in this collection value.
Error: Invalid index
on .terraform/modules/base/base/vpc.tf line 13, in module "vpc":
13: public_subnets = lookup(local.subnet_env[var.business_unit], "public_subnets", local.subnet_env["default"]["public_subnets"])
|----------------
| local.subnet_env is object with 2 attributes
| var.business_unit is "testthis"
The given key does not identify an element in this collection value.
如何获取默认值?
【问题讨论】:
标签: terraform