Terraform配置aws_route_table时route属性值不合法报错问题咨询
报错原因
- 路由逻辑错误:你配置的路由目标网段
10.0.1.0/24属于当前VPC的内部子网段,VPC默认会自动生成本地路由规则,所有内部网段通信默认走local路由,不需要额外指向互联网网关(IGW),该配置不符合AWS VPC路由规则。 - 配置校验规则触发:AWS Provider 3.x以上版本对
aws_route_table资源的route参数合法性校验更严格,不符合路由逻辑的配置即使字段存在也会触发合法性报错。
修复方案
你只需要调整aws_route_table.rt资源的route块配置,将目标网段改为公网地址段0.0.0.0/0即可,修改后的对应资源代码如下:
resource "aws_route_table" "rt" { vpc_id = aws_vpc.main.id route = [ { cidr_block = "0.0.0.0/0" gateway_id = aws_internet_gateway.gw.id } ] tags = { Name = "rt" } }
补充配置
如果需要将该公网路由表绑定到你创建的两个公网子网,还需要添加路由表关联资源:
# 关联公网子网1 resource "aws_route_table_association" "public_subnet_1_assoc" { subnet_id = aws_subnet.public-subnet-1.id route_table_id = aws_route_table.rt.id } # 关联公网子网2 resource "aws_route_table_association" "public_subnet_2_assoc" { subnet_id = aws_subnet.public-subnet-2.id route_table_id = aws_route_table.rt.id }
内容的提问来源于stack exchange,提问作者Ritik Jain
相关产品推荐
相关产品推荐

