You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NextJS项目Vercel Serverless函数超时限制无法提升求助

解决Next.js API端点在Vercel专业版下无法提升超时限制的问题

以下是几个可能的错误点和对应的修复方案:

1. 修正vercel.json的语法错误

你的vercel.json配置中最后一个属性后多了一个逗号,这会导致JSON解析失败,Vercel会直接忽略该配置文件。正确的配置应该是:

{
    "functions": {
        "pages/api/**": {
            "memory": 3008,
            "maxDuration": 300
        }
    }
}

2. 匹配正确的API路由路径

如果你使用的是Next.js 13+的App Router(路由文件在app/api/目录下),需要将vercel.json中的匹配路径改为app/api/**,而非pages/api/**:

{
    "functions": {
        "app/api/**": {
            "memory": 3008,
            "maxDuration": 300
        }
    }
}

如果是传统的Pages Router,则保持pages/api/**即可。

3. 确保使用Node.js Runtime

Edge Function的超时上限仅为15秒,且不受maxDuration配置影响。检查你的API路由文件,避免意外启用Edge Runtime:

  • 不要导出export const runtime = 'edge'
  • 显式指定Node.js Runtime(可选,默认即为nodejs):
export const runtime = 'nodejs'
export const maxDuration = 300
export const dynamic = 'force-dynamic'

4. 确认maxDuration的导出位置

确保maxDuration是API路由文件的顶层导出,且文件位置正确:

  • Pages Router:在pages/api/xxx.js中直接导出
  • App Router:在app/api/xxx/route.js中直接导出

5. 强制清除缓存重新部署

Vercel可能会缓存旧的配置或构建产物,导致新的maxDuration设置不生效。重新部署时:

  • 在Vercel控制台的部署页面,点击"Redeploy"并勾选"Disable Build Cache"
  • 或通过Vercel CLI执行vercel deploy --force强制部署

6. 验证账号套餐状态

确认你的Vercel账号确实处于有效专业版状态,没有过期或降级。专业版的Serverless Function最大超时为300秒,内存上限3008MB,你的配置符合要求。

7. 避免本地测试超时

本地开发环境的超时限制与Vercel部署环境不同,必须部署到Vercel后再测试实际的超时情况。

内容的提问来源于stack exchange,提问作者Eric Hasegawa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 04:00:54