如何将使用 java13 编译的 java 应用程序转换为 aws lambda 函数

问题描述

我开发了一个用 java 版本 13 编译的简单 java 应用程序,但据我所知,aws lambda 仅支持 java 8 和 java 11。

是否有任何解决方案或变通方法可以使我的应用程序适应 java 11,而无需将应用程序编译器版本更改为 11?

谢谢

解决方法

最简单的解决方案,假设您没有使用 Java 11 不支持的语言特性或库方法,是使用 -source-target 选项来告诉编译器生成 Java 11 兼容的输出。您没有说明您使用的是什么构建工具,但它应该提供某种配置方法(例如,Maven)。

如果您正在使用 Java-13 特定的功能,我会努力删除它们,以便您可以针对 Java 11。

但如果这是不可能的,那么您唯一的选择就是使用 Lambda container image 部署您的 Lambda。您将无法使用提供的基础镜像,因此您需要学习如何构建 Docker 镜像。并且您需要为您的图像显式构建 Lambda 运行时 API 引导程序。