こんにちは。技術4課の古川です。
AWS CodeCommit、 CodeBuild、CodeDeploy、または CodePipeline に Slack 通知を設定できることは、ご存知の方も多いと思います。
によると、2020年4月2日より、AWSコンソールで数回クリックするだけでslack通知を設定できるようになったようですが、この記事だけでは何が簡単になったのかいまいちわかりません。
そこで本記事では、実際に検証してみたいと思います
目次
- 概要
- CodeCommit設定
- AWS Chatbot設定
- 通知確認
- さいごに
1.概要
CodePipelineとCodeCommitのレポジトリを予め用意し、Slack通知のトリガーをプルリクエスト作成に設定します。
2.CodeCommit設定
コンソール画面でCodeCommitの設定を行います。右上の通知設定から、通知作成を選択します
続いて、通知ルールの作成をします。通知名を任意で決めたら、詳細タイプを選択します。
詳細タイプは、公式ではデフォルトの「フル」が推奨となっています。例えば、「フル」 を選択した場合、プルリクエストの通知内容にコメントが含まれます。通知機能が強化された場合や通知内容に情報が追加された場合は、通知設定を変えることなく新しい形式の通知を受信できます。
今回は、プルリクエストが作成されると通知をトリガーするように設定します。
続いてSNSトピックを作成を選択し、Target typeを「AWS Chatbot(Slack)」に設定すると、AWS Chatbotのコンソール画面に遷移できます。
3.AWS Chatbot設定
AWS Chatbotのコンソール画面に遷移し、「新しいクライアント」を設定します。その際に、Amazon ChimeとSlackのどちらかを選択できるのですが、今回はSlackで設定します。 Slackを選択すると、AWS Chatbotが通知先のSlack ワークスペースのパーミッションを要求します。許可すると、下図のように対象のSlackチャンネルを設定するように求められます。 SlackがAWS Chatbotを正常に承認したら、設定したSlackワークスペースの設定画面から「新しいチャンネルを設定」をクリックします。設定名は任意ですがここでは「test」とします。Amazon Cloudwatch Logsにログを発行するか選択し、通知を送りたいSlackチャンネルを選択します。今回は「times-furukawa」に通知を送りたいと思います。
アクセス許可の設定をします。今回はテンプレートを使用して、AWS Chatbotのアクセス許可を定義するIAMロールを作成します。ロール名は任意で、ポリシーテンプレートは選択しません。 次に通知オプションの設定ですが、ここが今回のアップデートの重要なポイントです。以前は予めSNSトピックを作成し、AWS Chatbotと連携させる必要がありました。しかし、今回のアップデートにより、SNSトピックを事前に作成せずとも、AWS Chatbotのチャンネル設定を行うことで、SNSトピックを自動で生成できるようになりました。 よって、通知設定は空欄で問題ありません。CodeCommitレポジトリのリージョンに、SNSトピックを自動生成してくれます。 チャンネルの設定が完了しました。SNSトピックも自動生成させれいます。4.通知確認
それでは、先ほど設定したプルリクエストの作成をトリガーとして、指定したSlackのチャンネルに通知が行くか確認します。 今回はレポジトリ「sls-demo-repo」のtestブランチをmasterブランチにマージする際のプルリクエストを作成します。 特に問題なく、「times-furukawa」に通知が届きました。5.さいごに
実際に手を動かしてみて、簡単にSlack通知を作成することができました。今回はCodeCommitにSlack通知設定を行いましたが、他のcode兄弟にも設定可能です。
今回のAWSアップデートのように、局所的であるが使いやすくなるようなアップデートが日々行われております。
次回も役に立つアップデートを検証してみたいと思います。