【发布时间】: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