调整API Gateway与Lambda超时后仍遇504错误,求排查方案
问题排查步骤
针对你遇到的API Gateway经CloudFront返回30秒504、但Lambda仅需40秒执行完成的问题,按以下顺序排查:
确认API Gateway集成与阶段超时配置
- 检查API Gateway到Lambda的集成请求超时:在CDK代码中确认
LambdaIntegration的timeout属性已设置为90秒,控制台中可查看集成请求的超时值是否与配额一致。 - 验证API Gateway阶段超时:阶段级别的超时需不小于集成超时,确保阶段配置中
Timeout参数已设为90秒。
- 检查API Gateway到Lambda的集成请求超时:在CDK代码中确认
检查CloudFront超时配置(核心排查点)
CloudFront默认源请求/响应超时为30秒,这是最可能的触发原因:- 修改源请求超时(Origin Request Timeout):将对应API Gateway源的该值调整为90秒。
- 修改源响应超时(Origin Response Timeout):同步设置为90秒,避免CloudFront提前断开连接。
- 检查缓存行为超时:确认对应路径的缓存行为未覆盖全局超时设置,保持与源超时一致。
验证API Gateway原生端点可用性
绕过CloudFront直接访问API Gateway的原生端点(如https://{api-id}.execute-api.{region}.amazonaws.com/{stage}),测试是否能正常返回结果。若直接访问正常,可确认问题出在CloudFront的超时配置。确认Lambda与中间件配置
- 再次核对Lambda函数的
timeout属性已设为90秒,确保配额提升后配置同步更新。 - 验证Apollo Server的
connect-timeout中间件是否正确生效,检查代码中是否存在其他可能提前终止请求的逻辑。
- 再次核对Lambda函数的
查看API Gateway日志细节
开启API Gateway全阶段日志,重点查看integrationLatency字段:- 若该值达到30秒即触发504,说明CloudFront提前断开连接;
- 若该值接近40秒仍触发超时,需检查API Gateway的集成配置是否未正确应用配额。
内容的提问来源于stack exchange,提问作者dhondooo
相关产品推荐
相关产品推荐

