CodePipelineでデプロイ前に手動承認させてチャットワークに通知する(後編)

CodePipelineでデプロイ前に手動承認させてチャットワークに通知する(後編)

前編の続きです。
SNSトピック、パイプラインの承認ステージを作成していきます。

SNSトピックの作成

次に承認ステージを追加する前に承認を通知する先となるSNSのトピックを作成します。
SNSのトピックから新しいトピックを作成します。
トピック名はapproval-testとしておきます。

次に先程登録したlambda関数にこのSNSトピックを購読させます。
ARNをクリックし、詳細画面からサブスクリプションを作成します。
プロトコル:AWS Lambda
エンドポイント:approval-test-dev-SnsToCw
バージョンまたはエイリアス:default

パイプラインに承認ステージを追加

次に承認ステージを追加するためパイプラインを編集します。
ステージの追加をクリックします。ステージ名はApprovalとしておきます。

Approvalステージが追加されました。

次にアクショングループを追加します。
アクション名:Approval
アクションプロバイダ:手動承認
SNSトピックのARN:approval-test

ステージの変更を完了し、パイプラインを保存します。

これでパイプラインを実行すると以下のように通知が来ると思います。

リンクをクリックして承認待機中のアクションを承認するか拒否するかします。
コメントが必須なので思いの丈をぶつけます。

以上でデプロイを自動化しつつ本番環境等は選択的にデプロイ出来るよう手動で承認するアクションを追加できました。

おわりに

本番環境へのデプロイはCIの代わりにコマンド一発で出来るようにしたりもしますが、
hotfixしたい場合などに作業者がテンパっている状況ではコマンドの打ち間違いや環境の切り替えミス等の危険もあるので
出来るだけ簡単なオペレーションにするためにも承認ステージを設けるのは良かったと思います。

今回ブログ作成のため改めて最初から作業してみましたが結構ボリュームがあり、そこそこ時間がかかったので
この辺もCloudFormationでの作成に挑戦してみるかもしれません。

TAG

  • このエントリーをはてなブックマークに追加
kurashita
エンジニア kurashita kurashita

基本的にRuby on Railsで開発してます。最近はvue.jsも。好きな塔は円城です。