LoginSignup
16
6

More than 3 years have passed since last update.

CodeBuild の結果をSlack に通知する (CodeBuild + Amazon SNS + AWS Chatbot)

Last updated at Posted at 2020-06-14

いちいちAWSコンソールを開いてCodeBuild の実行結果を確認するのやだな...と思ったので、Slackに飛ばすことにしました:love_letter:

やりたいこと

  • CodeBuild の結果をSlack に通知したい

aws-sns-chatbot.jpg

まずSNS のトピックを作り、Chatbot で対象のトピック・通知先のSlackチャンネルを選択。
そのあとCodeBuild の通知ルールで ターゲットを対象のトピックにする、というのが大まかな流れです。

事前準備

通知したいチャンネルがプライベートチャンネルの場合、AWS botくんを招待する必要があります。
以下のコマンドを実行すれば招待可能です。

/invite @aws

作業手順

1. AWSコンソール にログイン

2. [SNS] と入力し、Enterキーを押す

Amazon SNS

1. サイドバーの[トピック] をクリック

2. [トピックの作成] をクリック

  • 名前:任意の内容
  • アクセスポリシー:添付画像参照 Screenshot 2020-06-14 15.22.04.png

トピックにメッセージを発行できるユーザーは 全員 にするのを忘れずに。
デフォルト値は トピックの所有者のみ になっています。
そのままだとCodeBuild からトピックにメッセージを発行できなくてうまいこといきません。
ここでハマり、数時間を溶かしてしまいました。。

他の項目はとりあえずデフォルト値にしておきます。

3. [トピックの作成] をクリック

4. 作成したトピックを選択し、[編集] をクリック

5. アクセスポリシーのJSON に以下を追記

      "Principal": {
        "Service": "codestar-notifications.amazonaws.com"
      }

「Codeシリーズに特化した通知ルールサービスを明示的に許可するよ」という設定を入れる必要があるようです。
末尾じゃなくてこのあたりに挿入します。詳しくはこちらをご覧ください。
Screenshot 2020-06-14 15.29.54.png

6. [変更の保存] をクリック

AWS Chatbot

1. チャットクライアントを設定 > プルダウンで[Slack] を選択 > [クライアントを設定] をクリック

2. [Allow] をクリック
Screenshot 2020-06-14 15.45.04.png

3. [新しいチャネルを設定] をクリック

  • 設定名:任意の内容
  • Slack チャネル:通知先に設定したいチャンネル
  • アクセス許可:ポリシーテンプレート を使うと楽。[通知のアクセス許可] を選択しておけば十分です。
  • 通知 - オプション > SNS トピック:リージョン・トピックを選択

Screenshot 2020-06-14 15.59.29.png

4. [設定] をクリック

CodeBuild

1. サイドバーの[ビルドプロジェクト] をクリック

2. 対象のビルドプロジェクトを選択し、[通知ルールの作成] をクリック

  • 通知ルールの設定 > 通知名:任意の内容
  • 通知をトリガーするイベント:任意の内容
  • ターゲット:SNS トピックを選択 Screenshot 2020-06-11 18.52.58.png

3. [submit] をクリック

動作確認

ためしにビルドを実行してみてください。
ズラッと通知が届くはずです!
Screenshot 2020-06-14 16.10.33.png

余談

CodeBuild から直接AWS Chatbotをターゲットとして設定することもできました。
Screenshot 2020-06-12 11.34.28.png

しかし、SNS トピック名が意図しない名前で自動生成されてしまったので今回はSNSを挟む構成にしました。

参考

【開発者必見】Codeシリーズに最適化された通知サービスNotificationsがリリースされました! | Developers.IO
Configure Amazon SNS Topics for Notifications - Developer Tools Console

16
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
6