Routes Terraform-多个专用子网-添加新子网会改变路由表和路由表关联
上述部分工作正常,我可以轻松创建多个动态私有子网,并根据需要使用所需的Routes Terraform-多个专用子网-添加新子网会改变路由表和路由表关联,routes,terraform,terraform-provider-aws,terraform0.12+,private-subnet,Routes,Terraform,Terraform Provider Aws,Terraform0.12+,Private Subnet,上述部分工作正常,我可以轻松创建多个动态私有子网,并根据需要使用所需的tag.Name和variables.tf中的其他标记 ######################### # Private Subnets # ######################### resource "aws_subnet" "private" { vpc_id = var.vpc_id for_each = var.priv
tag.Name
和variables.tf中的其他标记
#########################
# Private Subnets #
#########################
resource "aws_subnet" "private" {
vpc_id = var.vpc_id
for_each = var.private_subnets
cidr_block = each.value.cidr_block
availability_zone = each.value.availability_zone
tags = merge(
{
"Name" = format(
"%s", each.key
)
},
each.value.tags
)
}
在上面的部分中,我想创建与私有子网数量相同数量的路由表,并将其与nat\u网关
关联。如果我对每个公共子网使用,问题是我想要使用的标记将不起作用,与公共子网相比,可能有多个私有子网,这会在nat\u网关
分配时产生问题
resource "aws_route_table" "private" {
count = length(var.private_subnets)
vpc_id = var.vpc_id
route {
cidr_block = "0.0.0.0/0"
nat_gateway_id = element(values(aws_nat_gateway.main)[*].id, count.index)
}
tags = merge(
element(values(aws_subnet.private)[*].tags, count.index),
{
"Name" = format(
"rt_%s", element(values(aws_subnet.private)[*].tags["Name"], count.index)
)
}
)
}
上面的代码工作正常,但是如果我引入一个新的私有子网,route\u table\u association
和route\u table
将进行修改,从而破坏以前映射的路由、关联
如何创建新的子网而不破坏以前与route_表、关联相关的映射
resource "aws_route_table_association" "private" {
depends_on = [aws_subnet.private]
count = length(var.private_subnets)
subnet_id = element(values(aws_subnet.private)[*].id, count.index)
route_table_id = element(aws_route_table.private.*.id, count.index)
}