Vercel 无服务器函数已超时错误。

17
我在Vercel上部署了一个Nuxt.js服务器端网站。我注意到,在某些情况下,我会遇到一个504:GATEWAY_TIMEOUT错误,错误代码为FUNCTION_INVOCATION_TIMEOUT,错误信息为"This Serverless Function has timed out"。
为什么会出现这个错误?

Serverless function has timed out


今天遇到了这个问题,我发现在澳大利亚托管数据库并尝试使用GraphQL每次请求对数据库进行几次访问肯定会导致出现问题。 - Dejan Vasic
1
@DejanVasic 我想我发现了问题所在。我发现由于我正在使用免费的Heroku服务层级,服务器会因为不活跃而休眠,这通常是问题出现的原因。我还注意到在另一个服务器始终处于活动状态的项目中,我没有遇到过那个问题。 - Opeyemi Odedeyi
5个回答

25

Vercel 在使用其平台时会施加一些限制。其中包括无服务器函数执行超时,这基本上是允许无服务器函数在必须响应之前处理HTTP请求的时间量。

如果您需要更长的执行超时时间,可以尝试使用Edge functions。它们必须在30秒内返回响应,但可以无限制地流式传输。

最近,他们已经将业余计划的无服务器函数执行超时从10秒、专业计划的60秒和企业计划的1000秒分别降低到5秒、15秒和30秒,而这是悄无声息的。这可能是您现在遇到此错误的原因。

我真的不喜欢他们没有警告用户(至少我没有被警告)并给予他们时间调整的事实,降低了这些限制。


2
这完全有道理,因为我的API在Heroku的免费计划上,有时会超时。 - Opeyemi Odedeyi
3
他们以前就这样做过(当公司名为Zeit时),在没有咨询客户或给予客户足够的时间升级其网站的情况下淘汰了API v1。迁移甚至不容易,他们不得不停止使用Docker。许多开发人员抱怨不得不迁移所有网站到该平台上以继续使用他们的服务,这很困难。我不会感到惊讶。 - Abdalla Arbab
1
似乎Netlify是前进的道路。 - Youzef
这些是默认的超时时间,但如果你使用专业版,你可以将函数的执行时间限制延长到5分钟:https://vercel.com/changelog/serverless-functions-can-now-run-up-to-5-minutes - undefined

7
截至2022年9月7日,Vercel的Hobby计划支持无服务器函数执行超时时间为10秒。Pro计划为60秒。企业版为900秒。 在此输入图像描述 这里是他们定价计划的链接: https://vercel.com/pricing

你知道有哪些免费的提供商具有更长的执行超时时间吗? - Muhammad Mahmoud
肯定取决于框架,我认为你仍然可以使用Vercel,但需要稍微不同的设置。 - Pavel Fedotov
1
我上次在 Vercel 上失败了:机器学习模型太大了。这里有一篇关于替代方案的 FreeCodeCamp 文章:https://www.freecodecamp.org/news/deploy-your-machine-learning-models-for-free/ - Pavel Fedotov

2

我能找到的最接近爱荷华州(数据库位置)的地方是克利夫兰(Vercel区域)。但仍然没有成功。 - J.R. Bob Dobbs

1

应用程序错误

无服务器函数的请求超过了超时阈值(对于Hobby账户为5秒,对于Pro账户为15秒,对于企业账户为30秒)。这是一个应用程序错误。

情况变得越来越糟...


1
公平地说,你认为5秒钟会提供相当糟糕的体验吗?这将激励工程师重新考虑他们的方法以获得更好的结果。 - Dejan Vasic

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接