12

AWS 允许使用( OpenJDK 8 ) 作为运行时创建Lambda 函数。我需要使用. 像这样的东西:Java 8Open JDK 11

package example;

import com.amazonaws.services.lambda.runtime.Context; 
import com.amazonaws.services.lambda.runtime.LambdaLogger;

public class Hello {
    public String myHandler(int myCount, Context context) {
        LambdaLogger logger = context.getLogger();
        logger.log("received : " + myCount);
        return String.valueOf(myCount);
    }
}

有一个选项允许使用自定义运行时和包含 Shell 示例的教程。但是没有例子Java

是否有人已经使用自定义 java 运行时处理过 AWS lambda?

4

4 回答 4

13

我也很好奇为什么我们还没有看到任何 Java 自定义运行时,所以大约一个月前,我开始尝试使用 Jigsaw 在 Java 11 中构建一个以生成小型运行时的想法。虽然它不完全是一个教程,但我确实写了一个关于如何构建它的相当详细的自述文件,并且代码很简单,可以遵循。

这是我在 GitHub 上的项目:

https://github.com/andthearchitect/aws-lambda-java-runtime

我最近刚刚发布了这个,它肯定是一个 POC,所以使用风险自负。

Corretto 看起来很有趣,但我猜仍然会有人对 OpenJDK 官方版本更满意。我希望这也许可以成为 Java 生产就绪的开源运行时的起点。

于 2019-02-21T03:55:59.310 回答
5

不再需要使用自定义运行时,因为AWS Lambda 现在支持 Java 11

但是,使用此运行时的 Lambda 函数将使用Amazon Corretto 11而不是 OpenJDK 11 运行。

如果您希望使用 OpenJDK 11 而不是 Corretto 11 运行 Lambda 函数,那么仍然建议使用自定义运行时。

于 2019-11-19T02:45:54.767 回答
2

正如Arun Gupta 所说,他们正在开发与Open JDK 11相对应的Corretto 11版本,并将在 2019 年 4 月之前发布测试时间......

但是,仍然可以添加自定义运行时,它允许“以任何编程语言实现 AWS Lambda 运行时”。

AWS 官方文档中没有示例JDK 11,但我找到了一个项目,它使用 25MB 的自定义运行时,JDK 11jlink. 你可以看看这个链接

于 2019-02-19T08:10:46.923 回答
1

我怀疑你还能做到这一点。根据 AWS:

“我们正在开发与 Open JDK 11 对应的 Corretto 11 版本,并将在 2019 年 4 月之前发布,以便进行测试。”

https://forums.aws.amazon.com/thread.jspa?messageID=875742&tstart=0 https://aws.amazon.com/blogs/opensource/amazon-corretto-no-cost-distribution-openjdk-long-term -支持/

于 2019-02-15T10:53:05.890 回答