GitLab CI Doker imageからAWS S3経由でLambdaに更新をかける

とある基幹システムの非同期処理等をAWS Lambda上で構築しようとした際のGitLab CI のご紹介です。

※ただ、結果として非同期処理はElasticBeanstalk の Worker環境で行うことにしたので、本番運用までは行なっていないです。

 

前回同様、test などは省きます

 

- pip install awscli

→EB install

 

- git checkout SendMail

→メールを送信するバッチをGitから持ってくる


- chmod +x .aws-config.sh
- ./.aws-config.sh

AWS の credentials


- export PATH=~/.local/bin:$PATH

→PATH通す


- apt-get update
- apt-get install -y zip unzip

→unzip を install

 

ここまでが事前準備

 

- zip -j SendMail.zip dst/*

→deployしたい対象ソースをzip化


- aws s3 cp SendMail.zip s3://lambda-zip/SendMail.zip

→zip したファイルをS3に置く


- aws lambda update-function-code --function-name SendMail --s3-bucket lambda-zip- --s3-key SendMail.zip --publish --profile=lambda

→置いたzipからLambdaへdeploy

 

これで一応deployはしてくれました。

ただ、本番運用するとなると、実行中のLambdaにdeployする訳にはいかないケースなど出てくると思うので、その辺りは都度調整が必要そう...

 

以上です。

間違い等ございましたらご指摘いただけますと幸いです...