KotlinのローカルAWS Lambdaをデバッグ実行しました。
お疲れ様です。@naokiurです。
最近の業務中は、AWS Lambdaを構築しております。
業務中はPythonで書いているのですが、
前々から興味のあるKotlinでもやりたいなあと思い、
AWS Toolkit for Intellij
を用いて、
ローカルでデバッグ実行できるように、
準備しました。
AWS Toolkitプラグインを導入している場合、
AWS Serverless Application
プロジェクトを作ることができるのですが、
どんなKotlinプロジェクトの場合でもLambdaを作成することができるようになるために、
なんの変哲もないKotlinプロジェクト
上で、
準備しました。
環境
- MacBook Pro (Retina 13-inch、Early 2015)
- Java 1.8.0_191
- IntelliJ IDEA CE 2019.1.3
- SAM CLI 0.14.2
実施したこと
- なんの変哲もないKotlinプロジェクトを用意する
- AWS SUM CLIで雛形を生成する
- Kotlin・Lambdaの構成を整える
- Runnerを作成する
- 実行!
なんの変哲もないKotlinプロジェクトを用意する
- なんの変哲もないKotlinプロジェクトを用意する
- AWS SUM CLIで雛形を生成する
- Kotlin・Lambdaの構成を整える
- Runnerを作成する
- 実行!
なんの変哲もないKotlinプロジェクトを用意する
なんの変哲もないKotlinプロジェクトを作成します。
なんの変哲もないですね。
AWS SUM CLIで雛形を生成する
AWS Toolkitプラグインは、 AWS SAM CLI
を前提としているので、
インストールされていると思います。
せっかくなので、AWS SAM CLIに雛形を作成してもらいます。
sam init -r java8 -d gradle
Kotlin・Lambdaの構成を整える
ソース移動
作成してもらった雛形の以下ファイルを、
任意のパッケージに移動します。
- App.java
- GatewayResponse.java
依存性追加
ライブラリの依存関係をgradleファイルに追加します。
dependencies {
implementation "com.amazonaws:aws-lambda-java-core:1.2.0" // 追加
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
}
ありがたいことにIntellijが教えてくれるので、
import change
をします。
Kotlin変換
移動したファイルをKotlinコードに変換します。
こちらもありがたいことにIntellijがやってくれます。
自分が試した際、App.ktでコンパイルエラーが発生しまっていたので、こちらを修正しました。
* return br.lines().collect<String, *>(Collectors.joining(System.lineSeparator()))
* return br.lines().collect(Collectors.joining(System.lineSeparator()))
Runnerを作成する
Lambda実行用のRunnerを作成します。
Handlerには変換したAppクラスを指定します。
実行!
デバッグ実行します。
ブレークポイントで止まりました!!
これでKotlinでも、
ローカルでLambda開発ができますね!
結果
- Kotlinで書かれたLambdaを、ローカルでデバッグ実行することができました。
今後
- デプロイできるかをまだ試せてないので、試していきたいと思います。
- テストコードを書けるようになっていきたいと思います。
- デプロイできるかをまだ試せてないので、試していきたいと思います。
- テストコードを書けるようになっていきたいと思います。
Author And Source
この問題について(KotlinのローカルAWS Lambdaをデバッグ実行しました。), 我々は、より多くの情報をここで見つけました https://qiita.com/naokiur/items/548fc01240c2488de15c著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .