tho*_*mas 10 javascript firebase google-cloud-functions google-cloud-firestore
我有一个云函数,它返回大量数据(50'000 个文档)作为对象。当我运行它时,我收到错误finished with status: 'response error'。
仅当我导出所有数据时才会发生这种情况,当应用限制(最多 20'000)时,它可以正常工作。这让我认为响应可能太大,但日志中根本没有关于此的信息。另外添加 try/catch 也不起作用。在控制台中,我只收到上述消息,没有任何进一步的指示。
我知道函数通常会在超时或超出内存时记录日志,所以我想知道还有什么可能是错误来源。
exports.run = functions.runWith({ timeoutSeconds: 540, memory: '8GB' }).https.onRequest(async (req, res) => {
try {
const querySnap = await db.collection("myData").get();
const data = querySnap.docs.map(doc => doc.data());
return res.status(200).json({
data: data
}).end();
} catch (err) {
console.log(err);
return res.status(400).end();
}
});
Run Code Online (Sandbox Code Playgroud)
编辑:确实是响应的大小导致了此错误。如果您只是返回给定大小的数据(使用Buffer.alloc(bytes)),您可以重现此情况。
MBH*_*nix 14
我认为您达到了 HTTP 函数的最大 HTTP 响应大小,即 10 MB
参考:https: //cloud.google.com/functions/quotas#resource_limits,下面的屏幕截图取自该参考。
| 归档时间: |
|
| 查看次数: |
4375 次 |
| 最近记录: |