Terraform 在地形中,如何使用地图列表?
我想在地形图中使用地图列表。 我有3个环境,每个环境有多个子网Terraform 在地形中,如何使用地图列表?,terraform,Terraform,我想在地形图中使用地图列表。 我有3个环境,每个环境有多个子网 segmented_subnets = { rest = { dev = [ "subnet-", #a "subnet-", #b ] qa = [ "subnet-" "subnet-" ] } dashboard = { dev = [ "subnet-", "subnet-", ] qa
segmented_subnets = {
rest = {
dev = [
"subnet-", #a
"subnet-", #b
]
qa = [
"subnet-"
"subnet-"
]
}
dashboard = {
dev = [
"subnet-",
"subnet-",
]
qa = [
"subnet-"
"subnet-"
]
}
login = {
dev = [
"subnet-",
"subnet-",
]
qa = [
"subnet-"
"subnet-"
]
}
}
我想访问这些子网,
我试过:
"${element(var.segmented_subnets.rest.["${terraform.workspace}"], count.index)}"
或:
无法通过数据使用访问此变量:
data "aws_subnet_ids" "foo" {
vpc_id = "${var.vpcs["${terraform.workspace}"]}"
tags {
Name = "bar*"
}
}
使用人:
resource "aws_instance" "ec2-foo" {
...
instance_type = "t2.small"
subnet_id = "${data.aws_subnet_ids.foo.ids[count.index]}"
...
地图地图在Terraform中是一个真正的难题,但是使用
aws\u subnet\u ids
数据源可能有更好的方法来做您想要做的事情。如果你能控制你的子网和它们的标签,这可能是一个更好的方法。非常感谢,它工作得更好
resource "aws_instance" "ec2-foo" {
...
instance_type = "t2.small"
subnet_id = "${data.aws_subnet_ids.foo.ids[count.index]}"
...