Terraform 在地形中,如何使用地图列表?

Terraform 在地形中,如何使用地图列表?,terraform,Terraform,我想在地形图中使用地图列表。 我有3个环境,每个环境有多个子网 segmented_subnets = { rest = { dev = [ "subnet-", #a "subnet-", #b ] qa = [ "subnet-" "subnet-" ] } dashboard = { dev = [ "subnet-", "subnet-", ] qa

我想在地形图中使用地图列表。 我有3个环境,每个环境有多个子网

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]}"
...