AWS Terraform创建路由报InvalidVpcEndpointId.NotFound但VPC端点已存在如何解决
问题排查方向
- 首先确认VPC端点类型:DynamoDB仅支持网关类型的VPC端点,网关端点的路由规则会在关联路由表时自动生成,不需要手动创建
aws_route资源,你当前的aws_route配置属于多余且逻辑错误的配置。 - 检查AWS Provider区域配置:确认你的Terraform AWS Provider块的
region参数是否显式设置为us-east-1,如果Provider默认区域和VPC端点所在区域不一致,跨区域调用API会无法识别对应VPC端点ID。 - 验证路由规则逻辑:你当前
aws_route配置的destination_cidr_block为私有子网CIDR,该配置逻辑错误——指向VPC端点的路由,目标应该是DynamoDB服务的公网CIDR/前缀列表,而非VPC内部子网CIDR,不符合路由规则要求也会触发API报错。 - 检查AWS Provider版本:适配Terraform v1.0.4的AWS Provider建议升级到3.75.0以上的稳定版本,过低版本存在API兼容问题可能导致资源识别异常。
解决方案
- 直接删除完整的
aws_route.subnet_to_vpce资源块:网关类型VPC端点在执行aws_vpc_endpoint_route_table_association关联路由表时,会自动在对应路由表中添加指向DynamoDB服务前缀列表的路由,下一跳自动关联到该VPC端点,无需手动配置路由。 - 显式固定AWS Provider区域:在Provider配置块中添加
region = "us-east-1",避免隐式继承环境变量的区域配置导致跨区域调用。 - 调整后执行
terraform plan确认配置变更,确认无多余的路由创建动作后再执行terraform apply即可完成部署。
内容的提问来源于stack exchange,提问作者Kevin Glick
相关产品推荐
相关产品推荐

