はじめに
みなさんはCodeDeployを利用しているでしょうか?
CodeDeploy は、「Amazon EC2 インスタンス、オンプレミスインスタンス、サーバーレス Lambda 関数、または Amazon ECS サービスへのアプリケーションのデプロイを自動化するデプロイサービスです」。
私はCodeDeployのLambdaフックという機能を使って、デプロイ時にLambda処理を追加することを行うときの設定でややてこずったので、今回どんな設定が必要かまとめていきます。
こちらの投稿もご参考にしてみてください。
【CodeDeploy】デプロイステータスとライフサイクルの関係性についてまとめてみた
前提
- CodeDeployを使ってECSへのデプロイを行う
- CodePipelineのデプロイステージでCodeDeployを利用する(ソースステージはCodeCommit、ビルドステージはCodeBuild)
- LambdaをVPC内で実行する
内容
以下の3つの点を確認して設定してみてください。
1. Lambdaの実行ロールでCodedeployへライフサイクルのイベント状態を返すアクション「codedeploy:PutLifecycleEventHookExecutionStatus」を許可する。
AWSのこちらのサイトをご覧ください。
ステップ 3: ライフサイクルフック Lambda 関数を作成する
2. Lambdaの環境変数にCodeDeployのエンドポイントを設定する。
3. 必要に応じてLambdaの環境変数に自身の環境のプロキシのURLを設定する
まとめ
一度構築したことある方は特に悩むことないかもしれませんが、はじめて構築する方に参考にしていただければと思います。このほかにもご自身の環境によって追加で設定が必要な可能性もあると思いますので、その点ご注意ください。