如何使用Open JDK 11+作为自定义运行时执行AWS Lambda?

veb*_*ben 10 java amazon-web-services aws-lambda java-11

AWS允许使用(Open JDK 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);
    }
}
Run Code Online (Sandbox Code Playgroud)

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

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

Jbe*_*erg 11

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

这是我在GitHub上的项目:

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

我最近才发布此书,它肯定是POC,因此使用时需您自担风险。

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


Jac*_* G. 5

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

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

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