Micronaut、GraalVM、および Docker を使用して Java で AWS Lambda 関数を作成およびデプロイしようとしています。このチュートリアルに従って、GraalVM ランタイムで AWS ラムダを作成しています。
micronaut
commandを使用して Java プロジェクトを作成しました$ mn create-app my-app --features aws-api-gateway-graal
。次に、コードや構成ファイルを変更せずに、GraalVM ネイティブ イメージを使用して Docker イメージをビルドしてみます。graalvm ネイティブ イメージがビルドされているときの docker build のステップで、次の警告が表示されます。
警告: スタンドアロン イメージのビルドを中止しています。イメージ ランタイム com.amazonaws.serverless.proxy.model.ContainerConfig で初期化または再初期化されるクラスのイメージ ヒープでは、インスタンスは許可されません。--initialize-at-build-time=com.amazonaws.serverless.proxy.model.ContainerConfig を使用して、ビルド時の初期化用にこのクラスをマークしてみてください。
Detailed message: Trace: field io.micronaut.function.aws.proxy.AbstractLambdaContainerHandler.config
警告: -H:+ReportExceptionStackTraces を使用して、基になる例外のスタック トレースを出力します*
警告: イメージ 'server' は、実行に JDK を必要とするフォールバック イメージです (フォールバック イメージの生成を抑制するには --no-fallback を使用してください)。
ビルド後、チュートリアルに書かれているように、bootstrap ファイルを含む docker イメージを function.zip ファイルにエクスポートします。次に、作成した AWS ラムダ関数に function.zip ファイルをアップロードし、関数をテストしようとすると、次のエラーが発生します。
{ "errorType": "Runtime.ExitError", "errorMessage": "RequestId: 888854d7-0e0e-42b4-a138-9a003c3455e1 Error: Runtime exited with error: exit status 1" }
開始 RequestId: 888854d7-0e0e-42b4-a138-9a003c3455e1 バージョン: $LATEST
エラー: bin/java も環境変数 JAVA_HOME もありません
END RequestId: 888854d7-0e0e
-42b4-a138-9a003c3455e1 9a003c3455e1 期間: 415.09 ミリ秒 請求期間: 500 ミリ秒 メモリ サイズ: 128 MB 最大使用メモリ:
16
MB
何が悪いのかわかりません。この問題の解決策はまだ見つかりません。