AWS CodeDeploy の hooks から lambda を実行する
こんにちは、 @kz_morita です。
今回は、AWS の CodeDeploy の hooks から lambda を実行してみたのでそれについてまとめます。
モチベーション ECSを使って動かしているサービスのデプロイに CodePipeline と CodeDeploy を使っていて, Blue/Green デプロイをしていました。 Blue/Green で本番のタスクセットを切り替えた後に、CloudFront の キャッシュを消したいと思い、CodeDeploy や CodePipeline のドキュメントを調べていたら、CodeDeploy の hooks が使えそうだなということがわかり設定を行いました。
CodeDeploy の hooks について CodeDeploy には、処理の hook を設定できるようになっており、いくつかのタイミングを指定して任意の処理を実行できます。
タイミングは以下のような感じです。
BeforeInstall Install AfterInstall AllowTestTraffic AfterAllowTestTraffic BeforeAllowTraffic AllowTraffic AfterAllowTraffic Install、AllowTestTraffic、AllowTraffic はhooks を指定できないです。
ざっくりと説明すると、
Install が 置き換えタスクセットの作成 AllowTestTraffic がテスト用にトラフィックの切り替え AllowTraffic がトラフィックの切り替え となると思います。それぞれの前後などに任意の処理が挟めることになります。
hooks で実行できるのは、アプリケーションのソースコードリポジトリに含まれる実行可能ファイルか、lambda Function になります。
今回は、lambda function を実行できれば良いのでこちらについてみていきます。
参考: https://docs.