将多个子网分配给路由表AWS

安基·辛格

我认为有多个人提出了相同的问题,但我的情况有所不同。我也从用户那里获取vpc区域,cidr值,甚至公共子网段的输入。我必须将所有公共子网附加到默认路由表,将私有子网附加到diff路由表。你能帮我固定它们吗?

provider "aws" {
    region = var.region
}

resource "aws_vpc" "app_vpc" {
  cidr_block           = var.vpc_cidr
  enable_dns_support   = true
  enable_dns_hostnames = true
  tags = {
    Name = var.vpc_name
  }
}

# create igw
resource "aws_internet_gateway" "app_igw" {
  vpc_id = aws_vpc.app_vpc.id
}

data "aws_availability_zones" "available" {
  state = "available"
}

#provision public subnet
resource "aws_subnet" "public_subnet_01" {
  vpc_id     = aws_vpc.app_vpc.id
  cidr_block = var.public_subnet_01
  availability_zone = data.aws_availability_zones.available.names[0]
  tags = {
    Name = "public_subnet_01"
  }
  depends_on = [aws_vpc_dhcp_options_association.dns_resolver]
}
resource "aws_subnet" "public_subnet_02" {
  vpc_id     = aws_vpc.app_vpc.id
  cidr_block = var.public_subnet_02
  availability_zone = data.aws_availability_zones.available.names[1]
  tags = {
    Name = "public_subnet_02"
  }
  depends_on = [aws_vpc_dhcp_options_association.dns_resolver]
}
resource "aws_subnet" "public_subnet_03" {
  vpc_id     = aws_vpc.app_vpc.id
  cidr_block = var.public_subnet_03
  availability_zone = data.aws_availability_zones.available.names[2]
  tags = {
    Name = "public_subnet_03"
  }
  depends_on = [aws_vpc_dhcp_options_association.dns_resolver]
}

#default route table 
resource "aws_default_route_table" "default" {
  default_route_table_id = aws_vpc.app_vpc.default_route_table_id

  route {
    cidr_block = "0.0.0.0/0"
    gateway_id = aws_internet_gateway.app_igw.id
  }
}

resource "aws_route_table_association" "default_association_01" {
  subnet_id      = [aws_subnet.public_subnet_01.id, aws_subnet.public_subnet_02.id, aws_subnet.public_subnet_03.id]
  route_table_id = aws_vpc.app_vpc.default_route_table_id
}

添加多个子网时出现错误,请您在这里帮忙:)

马辛

aws_route_table_association仅将一个子网作为输入,而不是子网列表。

如果要使用列表创建关联,则可以使用for_each

resource "aws_route_table_association" "default_association_01" {

  for_each = toset([aws_subnet.public_subnet_01.id, aws_subnet.public_subnet_02.id, aws_subnet.public_subnet_03.id])  

  subnet_id      = each.key
  route_table_id = aws_vpc.app_vpc.default_route_table_id
}

以上假设其他所有内容都是正确的。您的代码中可能仍然存在一些尚不明显的错误。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为每个路由表分配多个公共子网

来自分类Dev

Netplan:如何将整个子网分配给NIC,例如网关和广播IP

来自分类Dev

路由表中是否可以有两个用于一个或多个子网的NAT网关?

来自分类Dev

AWS Vpn路由到多个子网

来自分类Dev

将IP分配给新创建的OpenVPN接口后,是否会为该IP的子网创建默认路由?

来自分类Dev

多个子网之间的路由

来自分类Dev

多个子网之间的路由

来自分类Dev

使用fwmark将子网路由到特定的路由表,直接到ISP和VPN

来自分类Dev

将多个遮罩分配给SKCropNode

来自分类Dev

将多个遮罩分配给SKCropNode

来自分类Dev

将项目分配给多个用户

来自分类Dev

Azure ARM模板:将NSG或路由表添加到动态vnet /子网模板

来自分类Dev

如何将多个MVC路由分配给一种方法并确定使用的路由?

来自分类Dev

如何将多个传出 IP 地址分配给 AWS 上的单个实例?

来自分类Dev

将文本框值分配给多个表/查询字段值

来自分类Dev

将组件动态分配给路由

来自分类Dev

将多个来源分配给多个目标

来自分类Dev

在ASP MVC 6中将多个路由分配给同一控制器或操作

来自分类Dev

附加/编辑AWS路由表条目

来自分类Dev

AWS路由表的Terraform模板

来自分类Dev

将GitHub问题分配给多个人

来自分类Dev

“使用严格”:将值分配给多个变量

来自分类Dev

将多个键分配给数组中的相同值

来自分类Dev

将多个值分配给一个对象(?)

来自分类Dev

将jQuery插件分配给多个元素

来自分类Dev

如何将多个用户分配给Jira任务

来自分类Dev

将IObserver分配给多个IObservable实例

来自分类Dev

将值分配给Pandas中的多个列

来自分类Dev

将多个功能分配给单个变量?

Related 相关文章

热门标签

归档