我有一个云函数,它返回大量数据(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();
}
});
EDIT:确实是响应的大小导致了这个错误。如果您只是返回给定大小的数据(使用Buffer.alloc(bytes)
).
我认为您达到了 HTTP 函数的最大 HTTP 响应大小,即 10 MB
参考 :https://cloud.google.com/functions/quotas#resource_limits下面的屏幕截图取自该参考文献。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)