Google cloud datastore &引用;错误:无法处理请求";使用谷歌云功能发送过大响应时

Google cloud datastore &引用;错误:无法处理请求";使用谷歌云功能发送过大响应时,google-cloud-datastore,google-cloud-functions,Google Cloud Datastore,Google Cloud Functions,这里有一点背景:目前,我们正在使用谷歌云数据存储在应用程序中存储大量不同类型的记录,并且我们正在使用谷歌云函数返回各个类型的所有记录。我们是通过HTTP请求来实现的,所以这是一个HTTP触发器。就在昨天晚上,我们遇到了一个问题,当所有字段种类记录的总大小太大时,我们的端点突然失败,出现“错误:无法处理请求” 对此,我们的包装相当简单:我们的端点接受种类类型作为路径参数,运行一个数据存储查询,并对该种类的所有记录进行筛选,然后使用res.send发送查询结果 起初,这似乎是一个交易规模超过谷歌规定

这里有一点背景:目前,我们正在使用谷歌云数据存储在应用程序中存储大量不同类型的记录,并且我们正在使用谷歌云函数返回各个类型的所有记录。我们是通过HTTP请求来实现的,所以这是一个HTTP触发器。就在昨天晚上,我们遇到了一个问题,当所有
字段
种类记录的总大小太大时,我们的端点突然失败,出现“错误:无法处理请求”

对此,我们的包装相当简单:我们的端点接受种类类型作为路径参数,运行一个数据存储查询,并对该种类的所有记录进行筛选,然后使用
res.send
发送查询结果

起初,这似乎是一个交易规模超过谷歌规定限制的问题。但是,当我添加更多日志记录时,我确定查询确实正确地找到了所有字段记录,没有发生任何事件;然而,无论出于何种原因,它在
res.status(200).send(resultsArr)的最后一步中断

这显然与被发回的响应的大小有关,因为降低所有实体的聚合大小是成功的。在这一点上,我唯一能想到的是,
res.send
不会发回如此大小的响应,但在谷歌搜索时,我找不到有关这些限制的任何信息

以前有人遇到过这样的事情吗?有人知道这是一个很好的解决方案吗?我知道我们可以对端点进行多个调用,但我担心的是,这根本就是一个问题。在查询大小上遇到限制是一回事,但我没想到
res.send
本身会在这里限制我们

(编辑:是的,响应超过10MB。如果您需要帮助确定这是否是您的问题,您可以使用以下内容进行验证:

let size=Buffer.from(JSON.stringify(resultsArr)).length;

console.log('尝试发送大小为:',大小的响应);

HTTP触发器的传入和传出有效负载的限制当前设置为10MB,如下所示。

您可以将工作负载切换到可以接受32MB请求有效负载的云运行。

如何做到这一点?