【AWS】CodePipelineでLambda関数のDeployを自動化してみた

こんにちは、ウヤルームのうや(@uyaroom)です!
今回も技術系の記事です。

最近AWS Lambdaを使ってLINE Botの開発をしています。

LINE Botでゴミ出し通知システムつくってみた LINE Botに雑談機能を追加してみた LINE Botにバス時刻お知らせ機能つけてみた

しかし、開発を進めていくと以下の問題が生じてきました。

  • Lambdaのコンソール上で開発すると構成管理しづらくなってしまう
  • ローカル環境で開発すると修正の度に数Stepのデプロイプロセスを踏む必要があり面倒

そこで、今回はローカル環境でのコード修正からLambdaにデプロイするまでのプロセスを
CodePipelineを用いて自動化しました。

Before

現在、ローカル環境でのコード修正からLambdaにデプロイするまでのプロセスは
以下のようになっています。

  1. コード修正
  2. 外部ライブラリと一緒にzip化
  3. AWS Lambdaのコンソールからアップロード

合計で5分もあれば終わるような手順ですが、何度もやると徐々に心が削られていきます。

After

以下のようにCodePipelineを用いてデプロイを自動化しました。

  1. CodeCommitに修正したコードをpush
  2. 1.をトリガーにCodePipelineが起動
  3. CodeBuildで外部ライブラリとコードを一緒にzip化してS3に格納
  4. S3に格納されたzipファイルからCloudFormationがLambda関数をDeploy

おわりに

Deployを自動化したことにより、コードの管理が楽になりました。
今回作成したDeployフローを基にして、
Lambdaのバージョニング機能も有効的に使えるようなフローに改善していく予定です。
皆さんも他に良いやり方があればぜひぜひ教えてください!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です