检索地图变量的子网 ID
Retrieve Subnet ids for map variables
我已创建子网作为可用区和 CIDR 块的映射变量,并且
variable "public_subnets_list" {
type = map(any)
description = "Public Subnets"
default = {
"ap-south-1a" = "10.0.1.0/24"
"ap-south-1b" = "10.0.2.0/24"
}
}
这适用于使用以下代码在我的自定义 VPC 下创建子网
resource "aws_subnet" "public_subnet" {
depends_on = [
aws_vpc.terraform_vpc
]
for_each = tomap(var.public_subnets_list)
availability_zone = each.key
cidr_block = each.value
vpc_id = aws_vpc.terraform_vpc.id
tags = {
Name = "Public_Subnet_${each.key}"
}
}
如何从 aws_subnet.public_subnet[*]
获得的输出中检索和显示为各个 AZ 创建的子网 ID
在 Terraform documentation 中,splat 表达式不适用于使用 for_each
参数的资源。
要使用您的 Terraform 配置检索子网 ID 列表,您可以执行以下操作:
output "subnet_ids" {
value = [for subnet in aws_subnet.public_subnet : subnet.id]
}
我已创建子网作为可用区和 CIDR 块的映射变量,并且
variable "public_subnets_list" {
type = map(any)
description = "Public Subnets"
default = {
"ap-south-1a" = "10.0.1.0/24"
"ap-south-1b" = "10.0.2.0/24"
}
}
这适用于使用以下代码在我的自定义 VPC 下创建子网
resource "aws_subnet" "public_subnet" {
depends_on = [
aws_vpc.terraform_vpc
]
for_each = tomap(var.public_subnets_list)
availability_zone = each.key
cidr_block = each.value
vpc_id = aws_vpc.terraform_vpc.id
tags = {
Name = "Public_Subnet_${each.key}"
}
}
如何从 aws_subnet.public_subnet[*]
在 Terraform documentation 中,splat 表达式不适用于使用 for_each
参数的资源。
要使用您的 Terraform 配置检索子网 ID 列表,您可以执行以下操作:
output "subnet_ids" {
value = [for subnet in aws_subnet.public_subnet : subnet.id]
}