Docker Lambda

AWSのLambda関数をローカル環境で動かすlambci/lambdaというDockerイメージを見つけましたので、試してみました。

参考)
https://hub.docker.com/r/lambci/lambda/
https://zenn.dev/nekoniki/articles/10ac0c37957cc9
https://qiita.com/niwasawa/items/69bba64d7cd2d6277473

まずはnode.jsを上記参考に動作確認してみました。

index.js

event.json

上記ファイルをカレントにおいてdockerコマンドを実行します。

次に”Stay-Open”API mode で動かします。(リッスン状態にしてcurlでリクエスト)

AWSのライブラリがなくても動作します。実際はここからAWSのリソースにアクセスするためのnode moduleなども必要になるでしょう。
次はJavaですが、pom.xmlとHello.javaのシンプル構成です。

src/main/java/com/example/Hello.java

pom.xml

ビルドします。

mvn package

dockerコマンド実行

node.jsのときと同様に”Stay-Open”API modeです。

Lambda関数は、JavaScript,Python,RubyはAWSのコンソール組み込みコードエディタが使用できるので便利です。
デプロイ前のビルドが必要なJavaなどは、このようなローカルで動かす仕組みがあるとちょっと安心できる気がします。
この二通りの差異はいろいろと参考になりそうです。