【问题标题】:"502 bad gateway" - 1MB limit static page served from AWS Lambda to Application Load Balancer“502 bad gateway” - 从 AWS Lambda 提供给 Application Load Balancer 的 1MB 限制静态页面
【发布时间】:2019-12-16 10:08:34
【问题描述】:

访问由 Lambda 提供服务的 ALB 上托管的静态网页时,我们收到 502 bad gateway 错误。在 ALB 日志中,我们可以看到错误是我们的 Lambda 响应大于 1MB。我们想继续为我们的网页使用 Application Load Balancer,并且需要找到解决这个 1MB 限制的方法(我们可以部署我们的代码,以便 Lambda 返回多个单独的

我们在网上查看了其他 SO 问题,发现只有几个人遇到了我们的问题,但没有提供解决方案。 AWS 文档记录了这一限制,但同样没有提供解决方案。

【问题讨论】:

  • 您对 ALB-->Lambda 架构的动机是什么?您能否通过让 Lambda 将签名 URL 周围的 javascript 包装器返回到托管在 S3/Cloudfront 中的资源来完成您想要的操作?
  • @KevinSeaman 托管网站的最简单方法是使用 S3 / Cloudfront 方法,但这是我们正在使用的内部网页,将 S3 存储桶私有化似乎非常复杂将托管我们的资源,甚至可能不可能。当您使用 S3 托管网站时,您似乎必须让 S3 存储桶可公开访问。
  • 如今,通过 IP 地址限制对 s3 存储桶(甚至一组作为 Web 服务器)的访问实际上非常简单。这只是一个存储桶策略,这些天您也可以使用存储桶策略强制执行 https。在过去一年左右的时间里,S3 取得了长足的进步。

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


【解决方案1】:

我们最终决定关闭 ALB 并迁移到 API Gateway。 API Gateway 可以处理来自 Lambda 的 6MB 返回,所以这对我们来说应该没问题。

【讨论】:

    【解决方案2】:

    我们能否部署我们的代码,使 Lambda 返回多个单独的

    有点。

    您可以在 ALB 上的不同路径下引用指向 html 或 js 的主页链接,并由不同的 Lambda 提供。

    例如,响应路径“/”的 Lambda 可能返回引用路径“/load”中脚本的响应,其中不同的 Lambda 返回特定于该路径的响应。

    您也可以在主页中设置一个脚本,该脚本指向要在主页上显示的另一个 html 文档。这甚至可以递归完成,例如,'/' 引用 '/one' 引用 '/two' 等等。

    根据原始页面的大小,此策略可能会很快变得复杂。

    【讨论】:

    • 当,我明白了。我们将研究这种可能性,但我绝对可以看到复杂性在上升。如果我们最终采取这条路线,我也会向您报告。
    猜你喜欢
    • 2021-11-05
    • 2019-09-15
    • 2019-01-25
    • 1970-01-01
    • 2022-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-02
    相关资源
    最近更新 更多