如何延长AWS Amplify请求/响应超时时间?解决NextJS前端504问题
AWS Amplify 运行时请求超时配置指南
默认超时时间
对于部署在AWS Amplify上的Next.js应用,涉及后端请求的核心超时规则如下:
- Next.js的Server Components、API路由、Server Actions运行在Amplify托管的Lambda函数上,默认超时为10秒。如果你的ECS后端API响应超过这个时间,Lambda会触发超时,返回504网关错误。
- 若使用Amplify的API代理功能转发请求到ECS,底层API Gateway的默认集成超时为29秒,最大可设置到30秒。
延长运行时超时的方法
1. 调整Next.js Lambda运行时超时
针对Server Components/API路由/Server Actions的场景,需修改Amplify的Lambda函数配置:
- 找到项目中Amplify生成的Lambda函数配置文件,路径通常为
amplify/backend/function/<your-nextjs-function-name>/function.json(函数名一般类似nextjsSSR或包含nextjs标识)。 - 修改文件中的
timeout字段,设置为你需要的超时时间(最大支持900秒,即15分钟):
{ "functionName": "nextjsSSR", "runtime": "nodejs18.x", "timeout": 60, // 示例:设置为60秒 "memorySize": 1024, ... }
- 保存文件后,重新部署Amplify项目:
amplify push
2. 调整Amplify API代理超时(若使用代理)
如果通过Amplify的API代理转发请求到ECS后端:
- 登录AWS控制台,进入Amplify项目的API模块。
- 找到对应的API代理配置,编辑集成设置,将超时时间调整到最大30秒。
- 注意:此方式无法突破30秒上限,若后端响应超过30秒,建议改用Next.js的Lambda运行时处理(方法1),或考虑异步请求方案。
注意事项
- Lambda超时最大为900秒,若后端API响应超过15分钟,需设计异步处理流程(如使用SQS消息队列+前端轮询),避免同步请求超时。
- 修改超时后需重新部署Amplify项目,确保配置生效。
内容的提问来源于stack exchange,提问作者nb123
相关产品推荐
相关产品推荐

