Lambda(Java)で外部Jarや設定ファイルの読み込み方法
Lambda(Java)で外部jarを使いたい用件が出てきたので、やってみた。
課題として、外部jarを読み込めるか、設定ファイルを読み込めるか、の2つがあった。(外部jarは設定ファイルを読み込むことが必須のため)
結論として、jarは普通にビルドパスに含めればいい。
設定ファイルはちょっと工夫が必要。
まずプロジェクトのディレクトリ構成はこんな形にする。
$ tree . ├── lib │ └── external.jar # 外部jar ├── pom.xml ├── src │ ├── main │ │ ├── java │ │ │ └── com │ │ │ └── amazonaws │ │ │ └── lambda │ │ │ └── demo │ │ │ └── Helloworld.java │ │ └── resources │ │ └── setting.conf # 設定ファイル ・・・
これをZipにしてS3にデプロイする。今回はAWS Toolkit for Eclipseを使って楽々デプロイした。
Zipを展開するとこのような構成になっている。
$ tree . ├── com │ └── amazonaws │ └── lambda │ └── demo │ └── Helloworld.class ├── lib │ ├── external.jar │ └── ・・・ └── resources └── setting.conf
最後に、この設定ファイルはLambda動作時には/var/task/resources/setting.conf
に置かれるので、読み込む場合はそのパスを指定する。
参考
AWS Toolkit for Eclipseのチュートリアル。思いの外スムーズに連携できていたのでとても便利だった。 docs.aws.amazon.com