Table of Contents
CodePipeline Notification Ruleの設定
CodepiplineのDeveloper Tools画面を開き、
「Pipepeline」→ 「Pipelines」→「Settings」をクリックします。
次に「Create notification rule」をクリックします。
そしてNotification rule作成に必要な情報を入力していきます。
Detail typeについては今回はデプロイ状況だけわかればいいのでBasicにしました。
通知のトリガーについては、各Stage(Source, Build, Deploy)実行時にState(Started, Succeeded, Failed) の通知が来ればいいので下の画像のような設定にしました。
次に通知を送るターゲットにAmazon SNSのTopicを指定しないといけません。
まだ作成していないので「Create SNS topic」をクリックします。
Topic名を入力し、「Submit」をクリックします。
無事に作成できたら、「Submit」をクリックしてNotification ruleの作成を完了します。
作成が成功し、下のような画面が出たらNotification ruleの設定については終わりです。
AWS Chatbotの設定
ここまででCodePipelineからAmazon SNSへの通知する流れができました。
次にAmazon SNSからメッセージを引き継ぎAWS Chatbot経由でSlackへ通知するまでの流れを設定します。
まず、AWS Chatbotの画面で「Configured clients」→「fusic(Slackのワークスペース)」を開き、「Configure channel」をクリックします。
次に通知したいSlackチャネルを選択します。
IAMの設定では今回は、「Create an IAM role using a template」と「Notification permissions」を選びRoleを作成しました。
最後にCodePipelineのNorification rule作成時に同じく作成したSNS topicを選択、「Configure」をクリックして設定完了です。
通知結果
設定完了後、CodePipelineが動くと各Stage実行時に通知されデプロイ状況がSlackでわかります。
現在Fusic Tech Blogの開発環境でお試し運用中です。
まとめ
ご覧の通りCodePipelineのNotification ruleとAWS Chatbotの設定だけで、Lambda関数などのコードやCloudWatch Events Ruleを一切書かずにポチポチだけでSlackへ通知することができました。
ただ、表示や別処理などをカスタマイズしたい場合はやはりLambdaが必要になってくると思います。
料金についてもChatbotの利用自体は無料なのでありがたいです。
(Chatbotに使うAmazon SNSなどにはお金がかかってきます。)