【问题标题】:What is the optimal way to deploy Java AWS Lambda?部署 Java AWS Lambda 的最佳方式是什么?
【发布时间】:2016-01-19 12:56:46
【问题描述】:

有两种“部署”Java Lambda 的方法:

  • 创建一个包含所有(未打包的)依赖项的“胖”jar,例如通过使用 maven-shade-plugin
  • 创建一个包含我的代码的 zip 文件和一个包含所有依赖项的 lib 目录作为 jar 文件

由于执行我们的简单 Lambda 的环境“启动”(20-30 秒)需要很长时间,我想知道这两种方法是否比另一种方法“更快”还是可以进一步加快?

【问题讨论】:

  • 我只尝试过 fat jar 方法,我认为这种方法更快,因为要解压缩的文件更少……但您可以尝试一下并自己测试;)。老实说,我认为这两种方法都不会更快,但您可以尝试。
  • 我使用 Maven shade 插件部署了许多“Fat jar” lambda,大多数在
  • 两种方法都试过了,没发现有什么区别。但是,我可以区分 3 种不同的行为: 20-30 个“实例”的初始加速并行处理事件(~150-250/分钟)导致 30 秒以上的“启动时间”;常规事件处理时间小于 100ms;在接下来的几个小时里,有一些孤立的“启动事件”需要大约 5 秒。
  • @djhworld:只有老式的 java 东西。我使用 AWS 开发工具包通过 KMS 解密凭证,然后访问 RDS MySQL。后者似乎第一次需要约 3 秒,并且可以解释 5 秒的“启动事件”。
  • Lambda 偶尔会杀死你的 JVM,所以你会看到一些 Lambda 调用需要重新启动它

标签: java aws-lambda


【解决方案1】:

我发现 FAT jar 是占用空间小于 MB 限制的 lambda 的最佳方法。如果超过 MB 限制,请将库添加到 lambda 的 lib 文件夹并读入。

使用库中的 jar,我发现 lambda 第一次在容器中启动时加载速度稍慢......第一次速度较慢,随后在同一容器中启动速度非常快...... . 如果它进入一个新容器,一次又一次变慢。

以下是有关冷启动的一些有用信息: https://hackernoon.com/im-afraid-you-re-thinking-about-aws-lambda-cold-starts-all-wrong-7d907f278a4f

【讨论】:

    猜你喜欢
    • 2021-12-16
    • 1970-01-01
    • 2010-09-06
    • 1970-01-01
    • 1970-01-01
    • 2022-07-22
    • 2018-09-01
    • 2010-09-05
    • 2023-03-29
    相关资源
    最近更新 更多