Firebase HTTP云函数-500服务器错误,请重试

Firebase HTTP云函数-500服务器错误,请重试,firebase,express,google-cloud-functions,Firebase,Express,Google Cloud Functions,我有一个HTTP函数每秒执行几次(我没有确切的统计数据) 有时,请求会像预期的那样返回数据,有时会返回以下错误文本: 500服务器错误 错误:服务器错误 服务器遇到错误,无法完成您的请求。请在30秒后重试。 当这种情况发生时,我的所有HTTP函数都会发生这种情况。5分钟后提出同样的请求通常有效 现在,我可以想象这是我代码中的一个错误,但我正在使用中间件捕获所有错误并作为JSON响应 以下是我导出的云函数: const-app=express(); app.use(cors({origin:t

我有一个HTTP函数每秒执行几次(我没有确切的统计数据)

有时,请求会像预期的那样返回数据,有时会返回以下错误文本:


500服务器错误
错误:服务器错误
服务器遇到错误,无法完成您的请求。请在30秒后重试。
当这种情况发生时,我的所有HTTP函数都会发生这种情况。5分钟后提出同样的请求通常有效

现在,我可以想象这是我代码中的一个错误,但我正在使用中间件捕获所有错误并作为JSON响应

以下是我导出的云函数:

const-app=express();
app.use(cors({origin:true,credentials:true}));//允许跨源请求
app.get('/',this.reportRequest.bind(this));
应用程序使用(错误中间件);//处理错误
export const report=functions.https.onRequest(app);
下面是
错误中间件

export-const-errorMiddleware:ErrorRequestHandler=async(e,req,res,next)=>{
const executionId=req.header('function-execution-id');
const message='message'在e?e中。message:e;
常量代码=e.code和e.code>200和e.code<600?e.code:500;
json({message,executionId});
next();
};
请检查并启动它,以便接收有关此问题状态的更新

有些人同意您的观点,即错误甚至在到达函数之前就已经发生在中间件中的某个地方,而另一些人则认为请求似乎在能够响应之前就已经与实例进行了负载平衡

一种解决方法是实现指数退避,以识别此错误消息,并在增量更长的时间延迟后重试


目前没有修复的预计到达时间。

您会遇到哪些错误?我遇到了一些云函数和调用外部API(GoogleAPI)太快的问题。将开始出错。我得到的错误在第一个代码块中,只有HTML代码和状态代码500<代码>服务器遇到错误,无法完成您的请求。请在30秒后重试。
。我不确定调用API是否太快。有什么方法可以检查这个吗?你能提供更多的细节吗?你用这个函数做什么?您是否在云功能中呈现网站?我使用云函数作为我的web应用程序的后端,因此我只从请求中获取错误,而不是html文档。我使用firebase云函数作为API。例如,这个报告函数列出了CloudFireStore中的一些项目,并将它们作为JSON返回。无论如何,我都不会返回HTML,这是输出。我怀疑它与firebase有关,而不是express函数。可能是您的代码顺序有问题。据我所知,您必须将app.use(中间件)放在app.get()之前才能获得JSON响应,因为代码是连续的。但这并不能解释函数停止5分钟的原因。reportRequest回调函数做什么?