【问题标题】:What is the maximum outbound connections I can create from AWS Lambda?我可以从 AWS Lambda 创建的最大出站连接是多少?
【发布时间】:2022-04-08 22:01:20
【问题描述】:

我正在查看Lamba Limits 上的文档,上面写着:

文件描述符数 1,024

我想知道这是每次调用 lambda 还是所有 lambda 的总和?

我正在处理来自 kinesis 流的大量项目,并且正在调用 Web 端点,我似乎遇到了大约 1024 个与 API 的并发连接的瓶颈,我不确定瓶颈在哪里是。我正在调查我的负载均衡器和实例的限制,但我也想知道 lambda 本身是否根本无法在所有 lambda 之间创建超过 1024 个并发出站连接?

【问题讨论】:

  • 这是每次调用,而不是在所有 lambdas 中,但是正如页面所述,每个区域有 1000 个并发 lambdas 的限制
  • 谢谢。我认为我有 32 个并发 lambda。但每个人最多建立 1000 个出站连接;所以最多有 32,000 个连接到服务器。但是我看到每秒只有大约 500 个请求,其余的则从网关收到 5xx 错误。因此,网关似乎有自己的连接限制器。
  • 事实证明,它跨越所有 lambda,而不是每次调用。在 lambda 函数的所有调用中,出站连接限制为 1024 存在可衡量的瓶颈。
  • 如果我没记错的话,我对共享连接限制的看法是错误的,最终能够将其配置得更高。这是对我的服务器的一些限制,我不记得托管我的容器的一些 nginx 配置或 docker 本身是什么。毕竟我相信它是 1024 per lambda。

标签: aws-lambda aws-sdk-nodejs


【解决方案1】:

这个问题很老,但一个合适的答案可能会在未来帮助其他人。问题中正确指出的限制是每个 Lambda 函数的 1,024 出站连接。但是,此限制仅适用于容器的生命周期。目前没有公开文件说明生命周期的长度,但是通过我自己的测试,结果如下:

  • 在 Lambda 函数空闲 5 分钟后创建一个新容器
  • 频繁使用 Lambda 函数 60 分钟后会创建一个新容器
  • 对 Lambda 的代码或配置进行任何更新时都会创建一个新容器

关于新容器的最后一点说明,当创建新容器时,它将从一开始就运行所有代码,而调用暖容器只会调用处理程序,跳过库的加载等。因为这是最好的做法是实现连接池并在处理程序之外声明连接,以便在后续调用中重复使用,可以在AWS docs

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-03
    • 2018-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多