web-dev-qa-db-ja.com

カスタムランタイムとしてOpen JDK 11以降でAWS Lambdaを実行するにはどうすればよいですか?

AWSでは、Java 8OpenJDK 8)を使用してLambda関数を作成できますランタイム。Open 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);
    }
}

カスタムランタイムの使用を許可するオプションと、シェルの例を含む tutorial があります。ただし、Javaの例はありません。

誰かがすでにカスタムJavaランタイムでAWSラムダを扱っていますか?

10
veben

また、Javaのカスタムランタイムがまだ表示されていない理由についても知りました。そのため、約1か月前に、Java 11小さなランタイムを生成するためのジグソーの使用これは厳密にはチュートリアルではありませんが、これを構築する方法についてかなり詳細なReadmeを作成しました。

ここにGitHub上の私のプロジェクトがあります:

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

私は最近これを公開しましたが、POCであることは間違いないので、自己責任で使用してください。

Correttoは興味深いようですが、公式のOpenJDKリリースに慣れている人はまだいると思います。これがJava向けの本番環境対応のオープンソースランタイムの出発点になることを願っています。

11
Jberg

AWS LambdaでJava 11 がサポートされるようになったため、カスタムランタイムを使用する必要がなくなりました。

ただし、このランタイムを使用するLambda関数は、OpenJDK 11ではなく Amazon Corretto 11 で実行されます。

Lambda関数をCorretto 11ではなくOpenJDK 11で実行する場合は、カスタムランタイムを使用することをお勧めします。

4
Jacob G.

Arun Guptasaid として、Corretto 11Open JDK 11に対応するビルドで、2019年4月より前のテストに向けてリリースされます...

ただし、「任意のプログラミング言語でAWS Lambdaランタイムを実装する」ことを可能にする カスタムランタイム を追加することは引き続き可能です。

AWSの公式ドキュメントにはJDK 11の例はありませんが、25MBのカスタムランタイムを使用し、JDK 11からjlinkを使用してビルドするプロジェクトを見つけました。あなたはこれを見ることができます link

2
veben

まだそれができるとは思えません。 AWSによると:

「Open JDK 11に対応するCorretto 11ビルドに取り組んでおり、2019年4月より前にテストのためにリリースされます。」

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

0
Sofo Gial