とある基幹システムの非同期処理等を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する訳にはいかないケースなど出てくると思うので、その辺りは都度調整が必要そう...
以上です。
間違い等ございましたらご指摘いただけますと幸いです...