Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Terraform中引用由for_创建的资源_Terraform - Fatal编程技术网

如何在Terraform中引用由for_创建的资源

如何在Terraform中引用由for_创建的资源,terraform,Terraform,我已经创建了多个子网[私有/公共],通过在Terraform中使用for_,如下所示 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.name

我已经创建了多个子网[私有/公共],通过在Terraform中使用for_,如下所示

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\u default\u network\u acl中引用这些子网


我是用下面的方法做的

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

你想要所有的吗?或者是其中的一个子集?all、private和public我尝试了以下方法,似乎它的工作子网\u id=concat[对于aws\u subnet.private中的子网:subnet.id],[对于aws\u subnet.public中的子网:subnet.id]
subnet_ids = concat([for subnet in aws_subnet.private: subnet.id], [for subnet in aws_subnet.public: subnet.id])