Amazon Web Services ブログ

AWS Chatbot を利用して AWS 開発者用ツールの通知を Slack で受け取る方法

本投稿は Sr. Product Manager の Anushri Anwekar による AWS DevOps Blog への投稿を翻訳したものです。

開発者は多くの場合、Slack 上でコードについての議論を行います。AWS Chatbot を使用すると、リポジトリ、ビルドプロジェクト、デプロイアプリケーション、パイプラインといった開発者用ツールの通知を設定し、重要なイベントを自動的に Slack へ通知することができます。デプロイに失敗した時、ビルドが成功した時、プルリクエストが作成された時などに、開発者はもっとも気付きやすい形で通知を受け取ることができます。

2020年1月時点で通知がサポートされている AWS のサービスは以下の通りです (訳注: Developer Tools 以外も含めた、サポートされる全てのサービスの一覧は こちら をご覧ください)。

この記事では、CodeCommit のリポジトリでプルリクエストが作成された際に Slack へ通知するまでの手順を説明します。

概要

通知が必要なイベントのルールの作成と通知に利用される Amazon SNS のトピックの作成は同一のページから行うことができます。その後、Amazon SNS トピックに送信された通知が Slack チャンネルに表示されるように AWS Chatbot を設定できます。

以下の手順に従うことで、下の図に示した通知を設定します。

  1. リポジトリに対して通知ルールを作成します。これには通知に利用される Amazon SNS トピックの作成も含まれます。
  2. 作成した Amazon SNS トピックから Slack チャンネルへ通知するように AWS Chatbot を設定します。
  3. テストを行って通知が来ることを確認します。

前提条件

ここから先の手順を行うためには、AWS アカウントまたは管理アクセス権を持つ IAM アカウント・ロール、CodeCommit のリポジトリ、Slack チャンネルが必要になります。

設定手順

手順1 CodeCommit で通知ルールを作成する

以下の手順に従って CodeCommit で通知ルールを作成してください。

  1. 通知したい CodeCommit リポジトリを選択してください。以下のスクリーンショットが示す通り、私は Hello-Dublin というリポジトリを選択しました。
  2. 通知したい CodeCommit リポジトリを選択した上で [通知] を選択し、[通知ルールの作成] を選択します。
  3. 通知ルールに名前を設定します。[詳細タイプ] はデフォルトの [フル] のままにしておくことをお勧めします。[フル] を選択した場合、イベントに対する追加情報も通知することができます。また、イベントに対して新しい情報が追加されるたびに、更新された情報を取得できます。
    • 例えば、プルリクエストに対してコメントが作成されるたびに通知を受信したい場合は、[ベーシック] を選択するとコメントが作成されたことを通知します。
    • [フル] を選択した場合、通知内容にコメントが含まれます。通知機能が強化された場合や通知内容に情報が追加された場合は、通知設定を変えることなく新しい形式の通知を受信できます。
  4. [通知をトリガーするイベント] では [Pull Request][Created] を選択します。
  5. [ターゲット] では [SNS トピックの作成] を選択します。これにより、作成した Amazon SNS トピックに対してイベントを通知する際に必要なポリシーが自動的に適用されます。
  6. 通知ルールの作成は終了です。次の Slack 連携を行う際に必要になるため、Amazon SNS Topic の ARN を控えておいてください。

より詳細な手順については Create a Notification Rule をご参照ください。

手順2 Amazon SNS トピックと AWS Chatbot の連携

以下の手順に従って Amazon SNS トピックと AWS Chatbot を連携してください。

  1. AWS Chatbot のコンソール を開いて、AWS Chatbot ベータ版を試す を選択してください。
  2. [チャットクライアントを選択] を選択し、[Slack] を選択して [クライアントを設定] をクリックします。
  3. 下のスクリーンショットで示した通り、AWS Chatbot が通知先の Slack ワークスペースのパーミッションを要求します。許可すると、対象の Slack チャンネルを設定するように求められます。

手順3 通知のテスト

対象のリポジトリでプルリクエストを作成してください。この例では、This is a new pull request という名前のプルリクエストを作成しました。下のスクリーンショットで示したように、プルリクエスト作成イベントの通知が Slack チャンネルに届くことを確認してください。

手順4 後片付け

テスト目的で通知ルールを作成した場合は、請求を避けるために該当する Amazon SNS トピックを削除してください。

まとめ

AWS Chatbot の紹介は以上です。これらの通知によって、開発者はソフトウェア開発ライフサイクルで発生する重要なイベントを常に把握できるようになります。通知ルールはリポジトリ、ビルドプロジェクト、デプロイアプリケーション、パイプラインに対して設定することができます。またそれらの重要なイベント、例えばプルリクエストの作成、コードやコミットに対するコメント、ビルドの状態・フェイズの変化、デプロイプロジェクトの状態の変化、パイプラインに対する手動承認や実行状況の変化などについての情報をすぐに取得できます。

Developer Toolsの通知の詳細については、通知に関するドキュメントをご参照ください。

翻訳はソリューションアーキテクト鈴木 太一郎が担当しました。原文はこちらです。