• Top
  • Search
  • About
  • Privacy Policy
#

概要

Lambda は、デプロイパッケージが大きすぎると、ブラウザ上でデプロイすることができません。
S3 からデプロイする方法もありますが、めんどくさいです。
そんなときは、コマンド一発でデプロイしちゃいましょう!

この記事は、Lambda 関数を AWS CLI でデプロイし、スクリプト化するまでのメモです。

1. ソースを圧縮する

zipコマンドでデプロイするソースを圧縮する。

$ zip -rq my-function.zip *

2. Lambda にデプロイする

AWS CLI の lambda コマンドで対象の Lambda 関数にデプロイする。
AWS CLI v1 を使用している場合は、awsにすること。

$ aws2 lambda update-function-code  \
    --function-name  <LAMBDA FUNCTION NAME>  \
    --zip-file fileb://my-function.zip

3. スクリプト化する

デプロイ自体は、(2) で終了ですが、毎回2コマンド叩くのもめんどくさいです。
なので、一連の流れをスクリプト化しちゃいます。

#!/bin/bash

ZIP_FILENAME="my-function"
LAMBDA_FUNCNAME="<LAMBDA FUNCTION NAME>"

echo "Zipping..."
zip -rq $ZIP_FILENAME.zip * -x deploy.sh

echo "Uploading..."
aws2 lambda update-function-code  \
   --function-name $LAMBDA_FUNCNAME  \
   --zip-file fileb://$ZIP_FILENAME.zip

echo "Cleaning..."
rm ./$ZIP_FILENAME.zip

echo "Finished!"

あとは、このファイルをデプロイパッケージの中に入れといて、次のコマンドを叩くだけです。

$ bash deploy.sh
Zipping...
Uploading...
{
    ...
}
Cleaning...
Finished!

参考サイト

update-function-code — AWS CLI 1.18.1 Command Reference