Amazon CodeCommit にPushしたファイルを S3 に自動保存してみた

はじめに

私の所属しているチームでは CodeCommit で CloudFormation で使う構成ファイルを管理しています。
CodeCommit でリポジトリを更新した際に構成ファイルを S3 に保存し、CloudFormation で S3 内の構成ファイルを指定してリソースをアップデートしています。
今回は CodeCommit でファイルを更新したはいいものの、S3 にファイルを保存し忘れるといったことがないように自動保存の仕組みを Lambda で作りました。
イメージ図は以下のような感じです。f:id:rioner2525:20181110153433p:plain

コード

Python 3.6 で書きました。コードの置き場所は以下。
CodeCommitToS3/lambda_function.py at master · rioner/CodeCommitToS3 · GitHub
最後の行のバケット名を指定してくれれば、バケット名>リポジトリ名>ファイル名のパスで配置されるので便利です。
あとは Lambda のトリガーの追加で CodeCommit のリポジトリを指定すればOKです。
今回は更新時のみでよいので以下の図のような感じで。 f:id:rioner2525:20181110160439p:plain
トリガー名に関しては任意なので認識できるトリガー名にしましょう。
CodeCommit のリポジトリ設定で以下の図のようにトリガーが増えていれば問題なしです。f:id:rioner2525:20181110160709p:plain
CodeCommit で管理してるコードを CloudFormation で使うときに上げ忘れたまま作業に入ることがなくなったので良い感じです。
以上です。