VPC内Lambda调用公有API Gateway URL超时,如何通过VPC Endpoint解决?
问题解决方案
根因说明
当前域名已正常解析到execute-api VPC端点的私有IP,说明DNS路由配置生效,超时问题集中在访问权限、安全组、端点配置这几个层面,按照以下步骤逐一调整即可修复:
调整步骤
- 确认VPC端点私有DNS配置
你创建的com.amazon.us-east-1.execute-api类型Interface VPC端点必须开启私有DNS名称启用选项。未开启该配置时,API Gateway服务端不会识别该私有IP对应域名的访问请求,会直接丢弃流量触发超时。 - 修正VPC端点安全组规则
给端点关联的安全组添加入站规则,放行来自Lambda所在子网CIDR、或Lambda关联安全组的443端口HTTPS入站流量,安全组默认拒绝未放行的入站请求是最常见的超时诱因。 - 调整VPC端点访问策略
确认端点的资源访问策略没有限制对应API Gateway的调用权限,最小可用参考配置如下(替换对应占位符):
如果你使用的是默认全放行端点策略({ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "execute-api:Invoke", "Resource": "arn:aws:execute-api:us-east-1:<AWS账号ID>:<API Gateway ID>/*/POST/@connections/*" } ] }"Resource": "*")可以跳过该步骤。 - 验证子网路由配置
确认Lambda所在子网的路由表没有优先级更高的路由规则,将execute-api.us-east-1.amazonaws.com的流量导向NAT网关或其他非VPC端点的路径,Interface型端点的路由会自动注入到关联子网的路由表,无需手动配置。
验证方法
你可以在和Lambda同子网、同安全组的EC2实例中执行以下命令验证连通性:curl -v https://{apigatewayid}.execute-api.us-east-1.amazonaws.com/{stage}/@connections/{测试连接ID}
如果返回403错误说明权限策略配置有误,依然超时则优先排查安全组和路由配置。
内容的提问来源于stack exchange,提问作者marcino239
相关产品推荐
相关产品推荐

