如何为aws-amplify生成的GraphQL客户端设置自定义超时?
解决Amplify GraphQL查询Lambda超时问题
你遇到的Lambda:Unhandled超时错误,核心原因是Lambda函数默认超时时间为3秒,而你的handler执行耗时(4秒)超过了这个上限。下面分两步解决:
1. 调整Lambda函数的超时配置
你使用Amplify的defineFunction定义函数,可直接在函数定义中添加超时参数:
const serviceHandler = defineFunction({ entry: './service_call/handler.ts', timeout: 10 // 设置超时时间为10秒,可按需调整,Lambda最大支持900秒(15分钟) });
也可以通过配置文件修改:找到项目中amplify/backend/function/[你的函数名称]/function.json,修改Timeout字段:
{ // ...其他配置 "Timeout": 10 }
修改完成后运行命令部署变更:
amplify push
2. 同步调整Amplify客户端请求超时
为避免客户端在Lambda完成执行前提前断开,需同步调整generateClient的请求超时设置,确保客户端等待时间长于Lambda的超时时间:
const client = generateClient<Schema>({ apiOptions: { fetchTimeout: 15000, // 单位为毫秒,这里设置15秒,比Lambda的10秒超时更长 // 可选:根据业务需求配置重试策略 retryMode: 'ON_ERROR' } });
验证修改
调整完成后重新运行测试代码,4秒的延迟不会再触发超时错误,service_call查询将正常返回结果。
内容的提问来源于stack exchange,提问作者Deil
相关产品推荐
相关产品推荐

