【问题标题】:How do we generate a zip deployment package for AWS Lambda with all compiled class files and resource files at the root level using Maven?我们如何使用 Maven 为 AWS Lambda 生成包含所有已编译类文件和资源文件的 zip 部署包?
【发布时间】:2019-08-31 19:14:21
【问题描述】:

我正在尝试使用 Java 为 AWS Lambda 创建一个部署包。我们一直在使用 maven-shade-plugin 来生成一个 uber jar。但是我看到在 AWS Lambda 的 best practice Function Code 部分下,提到了

通过将依赖项 .jar 文件放在单独的 /lib 目录中,减少 Lambda 解压缩以 Java 编写的部署包的时间。这比将所有函数的代码放在包含大量 .class 文件的单个 jar 中要快。

所以在我看来,生成一个 zip 部署包可以减少冷启动时间。通过关注link,我可以看出 zip 部署的要求是:

所有已编译的类文件和根级别的资源文件。
运行 /lib 目录中的代码所需的所有 jar。

但是,我无法使用 Maven 生成这样的 zip 文件。我尝试按照here 提到的步骤配置maven-assembly-plugin

生成的 zip 文件基本上包含我的根级别的 jar,而不是最佳实践中提到的 .class 文件。

我是否错误地理解了这个最佳实践建议,或者谁能告诉我如何使用 maven 实现这一点?

【问题讨论】:

标签: java maven aws-lambda maven-assembly-plugin


【解决方案1】:

引用的部分没有说您应该上传.class 文件。它只是说您应该将依赖项与您自己的 jar 分开。这就是程序集插件的作用。

【讨论】:

猜你喜欢
  • 2014-08-26
  • 1970-01-01
  • 2016-11-06
  • 2015-10-15
  • 2021-07-29
  • 2011-01-22
  • 1970-01-01
  • 2020-01-24
  • 1970-01-01
相关资源
最近更新 更多