LoginSignup
3
4

More than 5 years have passed since last update.

Lambdaにjarをdeployする(その1)

Posted at

ソースコードを書く

ソースはAWS Toolkit for Eclipseを導入したEclipseから「New lambda Java Procjet」で作成したS3のイベントを拾うhandlerです。

make1.png

実装は何でも良いです。
通例だとHello Worldかhogehogeなので、Hello hogehogeとログに吐きます。

Jarを作ります

mavenを使っているのでゴールをpackageにしてjarを作ればいいんでしょ?
と、いつもの癖でjarを作ってしまいましたが、間違いです。

AWS Lambda 開発者ガイドの記載を読みましょう

Lambda 関数
 └Lambda 関数のビルド
  └デプロイパッケージの作成
   └デプロイパッケージの作成 (Java)
    └Maven および Eclipse IDE を使用した .jar デプロイパッケージの作成 (Java)

要約すると
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-core</artifactId>
<version>1.1.0</version>
<scope>compile</scope>
</dependency>


<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.3</version>
</plugin>
</plugins>
</build>

をpom.xmlに追加します。

今回はEclipseから「New lambda Java Procjet」でプロジェクトを作成しているので、aws-lambda-java-coreとaws-lambda-java-eventsが既にdependencyに入っています。

あとはゴールにpackage shade:shadeを入力するとスタンドアロンjarの出来上がり...って59MBもありますが?

make2.png

何故かと思いpom.xmlを見るとdependencyにaws-java-sdkが入っていることが原因のようです。
これの依存関係階層は、かなり強烈なので巨大なjarが出来るのは当然ですね。

という事で、aws-java-sdkをdependencyから外してスタンドアロンjarを作成した所、7.5MBのjarに落ち着きました。

deployするjarが出来上がったので、次はAWS側の設定です。

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4