KotlinのコードをAWS SAMでAWS Lambdaにデプロイする

KotlinのコードをAWS Lambda上で動かすの時はzipファイルをアップロードしていたけど、AWS SAMでデプロイするようにした。思った以上に簡単だった。いいね!

今回のコードはリポジトリに置いている。

template.yamlを作る

template.yaml
CodeUriにはzipファイルを指定すれば良い。今回はcronで定期的にLambdaを叩けるようにした。

SAMでデプロイする

template.yamlからserverless-output.yamlを生成する。serverless-output.yamlを元にcloudformationを実行する。という流れになる。

./gralew clean
./gradlew buildZip

sam package \
    --template-file template.yaml \
    --output-template-file serverless-output.yaml \
    --s3-bucket <S3_BUCKET>

aws cloudformation deploy \
    --template-file serverless-output.yaml \
    --stack-name kotlinLambdaStack

cloudformationで作られたリソースは、Stackを削除することで綺麗に削除できる。後始末のお掃除をしておく。

aws cloudformation list-stacks
aws cloudformation delete-stack --stack-name kotlinLambdaStack