MOテクノロジー

技術をメモしていくブログ

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