【问题标题】:AWS Lambda Payload ResponseAWS Lambda 负载响应
【发布时间】:2020-03-15 11:49:03
【问题描述】:

我正在开发一个应用程序,我们的后端是用 .NET Web APi Core 编写的,前端是用 React 编写的。我创建了一个获取 JSON 列表的端点,该列表的大小几乎为 83 MB。当我将后端部署到 AWS Lambda 并调用我的端点时,它给了我一个错误(将 Amazon.Lambda.APIGatewayEvents.APIGatewayProxyResponse 类型的响应对象从 Lambda 函数转换为 JSON:无法扩展此流的长度超出其容量。:JsonSerializerException)。我已经检查了 Lambda 有效负载响应限制为 6 MB,(将数据从 lambda 端点存储到 S3,然后调用 Front-End 对我来说不起作用),那么有什么方法可以通过 Lambda 获取这么多数据。

【问题讨论】:

  • 任何超过 6MB 的数据对于单个端点来说都是太多的数据。如果您有 83MB,或者您正在返回二进制数据(例如 base64 字符串),或者您的 json 有数百万个对象/数组,那么从 API 的角度来看,这两种情况都没有意义。对于二进制数据,请考虑将它们存储在 S3 中,并将 API 中的 S3 URL 仅返回到您的前端。对于数百万个对象,最终用户不可能想要数百万个对象,您可能想要添加一些过滤器并限制结果。

标签: amazon-web-services aws-lambda aws-api-gateway


【解决方案1】:

没有一个电话,对不起,你不能。正如described in this link,有效负载限制(用于同步调用)如您所说,为 6MB。异步调用的限制甚至更低。

我建议您先修改您的 UI/API 以缩小结果范围,或者捕获此错误并提醒用户(或调用服务)负载太大(因此应该中止、缩小或拆分为多次调用)。

【讨论】:

    猜你喜欢
    • 2019-01-11
    • 1970-01-01
    • 1970-01-01
    • 2018-04-17
    • 1970-01-01
    • 2020-03-16
    • 2021-07-08
    • 2021-10-04
    • 2018-02-28
    相关资源
    最近更新 更多