Как ссылаться на ресурсы, созданные for_each в Terraform - PullRequest
0 голосов
/ 22 января 2020

Я создал несколько подсетей [private / public], используя for_each в Terraform, как показано ниже

resource "aws_subnet" "public" {
  for_each = toset(data.aws_availability_zones.azs.names)
  vpc_id = aws_vpc.vpc.id
  cidr_block = cidrsubnet(var.private_ranges,1 ,index(data.aws_availability_zones.azs.names, each.value))
  availability_zone = each.value
  map_public_ip_on_launch = true
  tags = merge(local.common_tags, map("Name", join("-", [local.prefix, index(data.aws_availability_zones.azs.names,each.value )]),
  "Availibility Zone", each.value, "Type", "Public"))

  lifecycle {
    prevent_destroy = false
  }
}

resource "aws_subnet" "private" {
  for_each = toset(data.aws_availability_zones.azs.names)
  vpc_id = aws_vpc.vpc.id
  cidr_block = cidrsubnet(var.private_ranges,1 ,index(data.aws_availability_zones.azs.names, each.value))
  availability_zone = each.value
  tags = merge(local.common_tags, map("Name", join("-", [local.prefix, index(data.aws_availability_zones.azs.names,each.value )]),
  "Availibility Zone", each.value, "Type", "Private"))

  lifecycle {
    prevent_destroy = false
  }
}

Мне нужно сослаться на эти подсети в другом ресурсе aws_default_network_acl

resource "aws_default_network_acl" "default" {
  default_network_acl_id = aws_vpc.vpc.default_network_acl_id
  subnet_ids = <can you tell me how to reference the subnet ids here>
........

1 Ответ

0 голосов
/ 23 января 2020

Я сделал это, используя следующее решение,

subnet_ids = concat([for subnet in aws_subnet.private: subnet.id], [for subnet in aws_subnet.public: subnet.id])
...