【问题标题】:Aws Lambda response errorAws Lambda 响应错误
【发布时间】:2018-02-28 02:21:54
【问题描述】:

我正在运行 aws lambda,它将从 maria DB 获取数据并将获取的行作为 JSON 对象返回。 JSON数组中的项目总数为64K。

我收到此错误:

{ "error": "body size is too long" }

有没有办法通过对 lambda 进行任何配置更改来发送所有 64K 行?

【问题讨论】:

    标签: node.js amazon-web-services lambda aws-lambda


    【解决方案1】:

    您无法发送 64K 行(超过 6MB 正文负载大小 limit)对 Lambda 进行配置更改。几乎没有其他选择。

    • 查询数据并构建一个 JSON 文件,其中包含 Lambda 内部 /tmp(最大 512MB)目录中的所有行,将其上传到 S3 并返回 CloudFront Signed URL 以访问数据。
    • 将数据集拆分为多个页面并执行多个查询。
    • 使用 EC2 实例或 ECS,而不是 Lambda。

    注意:根据查询数据的目的、大小等不同的机制,可以使用不同的机制,高效地使用其他 AWS 服务。

    【讨论】:

    • 亲爱的,您能详细解释一下您的第三点吗?您的意思是在 node js 中使用 express 编写 API 并将其发布到 EC2 实例上吗?
    • 是的。在 EC2 实例中使用 NodeJS(使用 ExpressJS 或任何其他合适的框架)或使用 Docker 容器,将服务托管在容器集群中。
    • 非常感谢@Ashan 的建议,我现在正在努力...干杯
    【解决方案2】:

    此错误表明您的响应超过了最大值 (6 MB),这是 AWS Lambda 可以响应的最大数据大小。

    http://docs.aws.amazon.com/lambda/latest/dg/limits.html

    【讨论】:

      【解决方案3】:

      您似乎已达到最大 6 MB 响应大小的硬性限制。由于这是一个硬限制,不幸的是没有办法增加它。

      您需要将您的 lambda 设置为能够发送最多 6MB 的数据,并对您需要在不同调用中检索的行进行分页,直到您获取所有 64K。

      来源: https://docs.aws.amazon.com/lambda/latest/dg/limits.html#limits-list https://forums.aws.amazon.com/thread.jspa?threadID=230229

      【讨论】:

        猜你喜欢
        • 2020-08-28
        • 2017-09-28
        • 2018-03-22
        • 2017-10-04
        • 1970-01-01
        • 1970-01-01
        • 2017-10-23
        相关资源
        最近更新 更多