为什么我们突然得到“函数执行耗时60000毫秒,完成状态:Firebase可调用函数/ Google云函数上的“错误”?

c0vxltue  于 2023-03-31  发布在  Go
关注(0)|答案(5)|浏览(175)

我们的应用程序自3月22日开始生产。它使用Firebase可调用函数。函数的执行完美无瑕,直到3月28日突然,我们开始观察到许多失败的执行,并在云函数日志Function execution took 60000 ms, finished with status: 'error'中获得以下调试消息。
虽然相同功能的一些执行失败,但其他功能正常工作,平均完成时间为250ms。
在检查云平台基础设施状态时,没有任何迹象表明存在任何中断或任何其他问题。
例如,我们有这个非常简单的函数:

exports.getAccommodations = functions
  .region('asia-east1')
  .https.onCall(async (data, context) => {
    functions.logger.warn(`V3 STARTED`);
    // load some collection from firestore here and return it
  });

请注意,函数的第一行是创建一个log warn条目。我们可以观察到以下内容:

  • 对于带有上述错误消息的失败执行,没有log.warn条目。
  • 对于成功的执行,总是有一个相应的log.warn条目。

换句话说,它看起来像失败的执行,甚至不必执行函数体。我们在失败案例中看到的是Function Execution started后跟Function execution took 60000 ms, finished with status: 'error'
这些是我们的日志,证实了我们的观察:

  • 过滤失败案例时:(resource.type="cloud_function" ) OR (resource.type="cloud_run_revision" ) textPayload="Function execution took 60000 ms, finished with status: 'error'得到:

  • 当列出所有执行(resource.type="cloud_function" ) OR (resource.type="cloud_run_revision" )时,我们得到:

请注意,在问题开始出现的时候,我们还没有部署任何东西。

qvtsj1bj

qvtsj1bj1#

看到同样的问题,大多数调用以状态码408结束,并且具有比我们通常看到的更高的延迟。
我想这和这个有关,这个说法很宽泛:
摘要:Google Cloud Networking在多个地区遇到延迟增加
https://status.cloud.google.com/incidents/nieR2aLyg1rwFKq1aWZU#2c2sBHWU84yPDJ8y1ar4

vcudknz3

vcudknz32#

请彻底检查您的代码。
通常是错误的async/await没有任何代码文件细节的问题。
如果您使用任何express中间件,请不要忘记调用next函数,例如:

export const someMiddleware = async (
  req: Request,
  res: Response,
  next: NextFunction,
) {
  // await some of your operations

  // notice that "next" does not need to be awaited, await can cause functions time out
  next(); 
}
ar7v8xwq

ar7v8xwq3#

我们也面临着这个问题。大约15个小时前就开始了。
我们的Firebase项目是一年多前建立的。我们没有做任何更改。这一定是Firebase的问题。
该项目有41个云功能,只有5个同时受到影响,其他功能都和以前一样。
请帮助,它正在破坏我们的业务应用程序目前很多。

x9ybnkn6

x9ybnkn64#

我们看到了同样的问题。函数完全运行,但在默认60000ms后超时,并且从未收到响应。
完成支付:[object Object](返回结果前的调试消息)
可调用请求验证通过
函数执行耗时60000 ms,完成状态:“错误”

7lrncoxx

7lrncoxx5#

我们看到任何修复的问题.我们也受到了类似的问题,我们的大多数消防站连接.重建索引也没有帮助.

相关问题