AWS API Gateway已提配额至120秒仍29秒超时求助
你遇到的29秒超时问题,大概率不是区域或API类型(你用的是REST API,配置方式没问题)导致的,更可能是以下几个常见原因:
API未重新部署:CloudFormation更新方法配置后,必须将API重新部署到对应阶段,新的超时设置才会生效。很多人容易忽略这一步,导致老的默认配置(29000ms)仍在运行。检查你的CloudFormation模板是否包含
AWS::ApiGateway::Deployment资源,并且该资源依赖于MyApiMethod;如果没有,手动在API Gateway控制台选择对应阶段执行部署操作。Lambda超时限制未同步调整:因为你用的是
AWS_PROXY集成,API Gateway的超时不会覆盖Lambda自身的超时设置。如果你的Lambda函数超时仍然设为默认值(或小于120000ms),Lambda会先于API Gateway触发超时,最终表现为API Gateway返回504。务必将Lambda函数的超时配置调整为≥120000ms(比如设为121000ms留缓冲)。账户配额未实际生效:虽然你申请了配额提升,但需要确认该配额在当前区域已正式生效。进入AWS控制台的「Service Quotas」服务,搜索API Gateway的「Integration timeout」配额,查看当前生效值是否为120000ms。部分配额申请需要AWS审核,可能存在延迟或未通过的情况。
阶段配置覆盖了方法设置:API Gateway的阶段(Stage)级别可以设置全局超时参数,该优先级高于方法级的
TimeoutInMillis。检查对应阶段的设置,确认没有将超时值设回29000ms。
排查步骤建议
- 先手动重新部署API到目标阶段,测试是否解决超时问题;
- 登录Lambda控制台,检查并更新目标函数的超时配置;
- 验证Service Quotas中的Integration timeout配额状态;
- 检查API阶段的超时参数设置。
内容的提问来源于stack exchange,提问作者jtlz2

