[micronaut] GORMを利用したアプリをLambdaで起動するとエラー

ローカル環境では一切問題がないが、AWS Lambda 上で動かすと下記エラーが発生した。

環境
Java: java 11 corretto
Micronaut: 2.3.2 / 2.4.4

エラーとなっているサービスは、GormServiceのクラス。
原因は、@Service annotation を使っていたサービスで一部実装部分があったため、abstract class として利用していたのが原因。

@Service を利用する箇所は全て interface を利用し実装部分は普通の class を作成してそこに記載するようにした。

[micronaut] AWS LambdaでGORMを使う

micronaut(2.3.2) w/ groovy と GORM を使うアプリで、ローカル環境だと動作するけどLambda上だと以下のようなエラーになった。
Lambdaは、Serverless Function ではく、Applicationとして構築している。

以下のようなエラー

solution

Lambda 経由だと、通常のmainがエントリーポイントではなく、Application の場合は MicronautLambdaHandler がエントリーポイントとなる。
Server function だと、MicronautRequestHandler もしくは、MicronautRequestStreamHandler になる。

MicronautLambdaHandler を拡張したクラスを作成して、GORMのDomain郡があるパッケージを指定してあげる。

とうまくいった。