Amazon Web Services ブログ

AWS Chatbot を使って Slack チャネルで Amazon EventBridge イベントを監視

この記事は、Abhijit Barde 、Arnab Deka、Prabhakar Ganesamurthy による寄稿の Monitor Amazon EventBridge events in your Slack channels with AWS Chatbot を翻訳したものです。

DevOps チームは、Slack や Amazon Chime などのチャットコラボレーションプラットフォームを使用して、システムを監視し、イベントに応答します。AWS Chatbot は Slack や Chime と統合されているので、チャットチャネルから AWS リソースを監視および操作できるため、アプリケーション間でのコンテキスト切り替えを軽減できます。DevOps ユーザーは、 Amazon EventBridge を通じてチャットチャネルの 200 を超えるサービスイベントタイプから通知を受け取ることができるようになりました。このブログ投稿では、Amazon EventBridge ルールを設定し、Slack チャネルで通知を受信するように AWS Chatbot を設定する手順を説明します。

仕組み

Amazon EventBridge を使用すると、アプリケーションは、AWS のサービスやその他のデータソースから、Amazon Simple Notification Service (Amazon SNS) トピックや AWS Lambda 関数など、さまざまな送信先にイベントをルーティングできます。チャットチャネルでサービスイベント通知を受信するには、Amazon EventBridge ルールで SNS トピックをターゲットとして設定し、AWS Chatbot コンソールでトピックをチャットチャネルに関連付けます。EventBridge が、ルールで定義されているイベントパターンに一致するイベントパターンを持つイベントを受信すると、イベントルールが起動され、設定したチャットチャネルにイベント通知が送信されます。

このチュートリアルでは、次の手順を実行します。

  1. SNS トピックを作成します。(オプション)
  2. Amazon Elastic Container Service (Amazon ECS) の状態変更イベントの EventBridge ルールを設定します。
  3. AWS Chatbot 設定を作成します。
  4. EventBridge ルールをテストします。

前提条件

以下が必要です。

  • AWS アカウント。
  • AWS Chatbot アプリケーションがインストールされている Slack チャネル。
  • Amazon ECS クラスター。

この投稿では、Amazon ECS クラスターを使用して、Slack チャネルに ECS 状態変更イベント通知を配信するデモンストレーションを行います。ECS クラスターの状態が変わるたびに Slack チャネルに通知を受け取り、問題を診断して修正できるようにしたいと考えています。

ステップ 1: Amazon SNS トピックを作成

まず、EventBridge と AWS Chatbot を接続するための SNS トピックを作成します。SNS トピックが既にある場合は、この手順をスキップできます。

SNS コンソールで、[トピック]、[トピックの作成] の順に選択します。トピックにわかりやすい名前を付け、その他のパラメータをデフォルトのままにしておきます。

ステップ 2: ECS 状態変更イベントの Amazon EventBridge ルールを設定

  1. Amazon EventBridge コンソールで、[ルール] 、[ルールの作成] の順に選択します。
  2. ルールのわかりやすい名前を入力します。
  3. [パターンの定義] で、[イベントパターン] を選択します。
  4. [サービスごとに定義済みのパターン] を選択して、イベントに一致するパターンを定義します。
  5. [サービスプロバイダー] で、[AWS] を選択します。
  6. [サービス名] で、[Elastic Container Service (ECS)] を選択します。

注意:現在、EventBridge でサポートされている AWS のサービスからのイベントのみが AWS Chatbot でチャットチャネルに配信されます。

  1. [イベントタイプ] で、このルールに使用するイベントのタイプとして [状態の変更] を選択します。オプションで、詳細タイプとクラスターを選択できます。

[パターンの定義] ページに、手順の説明に従って入力されたフィールドが表示されます。

図 1: パターンの定義

  1. [ターゲットの選択] の [ターゲット] で、ECS 状態変更イベントがこのルールをトリガーしたときに呼び出すターゲットとして、[SNS トピック] を選択します。
  2. [トピック] で、この投稿のステップ 1 で作成した SNS トピックを選択します。

[ターゲットの選択] に [ターゲット] セクションが表示されます。SNS トピックは、イベントがトリガーされたときにルールターゲットとしてドロップダウンから選択されます。[トピック] の下に、TopicForAWSChatbotNotifications が表示されます。

図 2: ターゲットの選択

  1. デフォルト設定でルール作成プロセスを完了します。

ステップ 3: AWS Chatbot 設定を作成

これで、チャットクライアントで AWS Chatbot の設定を開始する準備が整いました。

  1. AWS Chatbot コンソールで、[新しいクライアントの設定] を選択します。
  2. [新しいクライアントの設定] で、[Slack] を選択します。
    セットアップウィザードによってSlack OAuth 2.0 にリダイレクトされます。
  3. 右上隅で、設定する Slack ワークスペースを選択し、[同意する] を選択します。Slack ワークスペースは AWSChatbot デモ Slack アプリをインストールします。これで、サインインに使用した AWS アカウントが通知を送信できるようになります。

AWS Chatbot は、AWS Chatbot デモ Slack ワークスペースへのアクセス許可をリクエストしています。

図 3: AWS Chatbot は Slack ワークスペースへのアクセスをリクエスト

  1. ここから Slack がユーザーを [Slack チャネルの設定] にリダイレクトします。通知を受信するチャネルを選択します。ドロップダウンリストからパブリックチャネルを選択するか、プライベートチャネルの URL または ID を貼り付けることができます。プライベート Slack チャネルの URL を見つけるには、Slack の左側のサイドバーで、チャネル名のコンテキスト (右クリック) メニューを開き、[リンクをコピー] を選択します。AWS Chatbot は、AWS Chatbot アプリ (@aws) を Slack チャネルに追加した場合にのみチャネルで動作します。AWS Chatbot アプリが追加されていない場合は、チャネルの [詳細] ページで [アプリケーションの追加] を選択します。
  2. Slack チャネルを選択した後、[IAM アクセス許可] で既存の IAM ロールを使用するか、ポリシーテンプレートを使用して新規に作成します。EventBridge 通知を受信するには、ロールに通知へのアクセス許可が必要です。
  3. 最後に、[SNS トピック] で、ステップ 1 で作成した SNS トピックを選択します。複数のリージョンから複数の SNS トピックを選択し、同じ Slack チャネルに通知する機能をすべて付与できます。
  4. [設定] を選択して設定を完了します。

ステップ 4: アラームをテスト

ECS タスクまたはサービスを手動で停止して、この設定をテストできます。これにより、アラームがトリガーされ、Slack チャネルで通知が送信されます。

通知テキストには、「「デフォルト」クラスタで実行されている ECS タスクが PENDING 状態に移行しました」と表示されます。

図 4: ECS タスクの状態の変更に関する通知

まとめ

DevOps ユーザーは、AWS Chatbot が設定したチャットチャネルで、拡張された AWS のサービス範囲を監視できるようになりました。この Slack と Chime との統合により、コンテキスト切り替えが低減され、チャットチャネルからアプリケーションや CI/CD ワークフローを監視できるようになります。Amazon EventBridge による AWS のサービスに対するAWS Chatbot のサポートの詳細については、AWS Chatbot 管理者ガイドの「他の AWS のサービスでの AWS Chatbot の使用」を参照してください。

AWS Chatbot を改善するアイデアはありますか? AWS Chatbot チームにコメントを送信するには、Slack チャネルで @aws feedback <コメント> と入力してください。

著者について

Abhijit Barde

Abhijit Barde

Abhijit Barde は AWS Chatbot のプリンシパル Product Manager であり、すべての AWS ユーザーが会話型インターフェイスを使用して AWS リソースを簡単に検出、監視、操作できるようにすることに焦点を当てています。

Arnab Deka

Arnab Deka

Arnab Deka は AWS Chatbot のシニアソフトウェア開発エンジニアです。Arnab は、複数の業界にわたる経験を持つ、多言語に精通しているデベロッパーです。彼は、高いスケーラビリティとユーザビリティを実現するためのシステムと API を構築することで、カスタマーエクスペリエンスを向上させることが大好きです。

Prabhakar Ganesamurthy

Prabhakar Ganesamurthy

Prabhakar Ganesamurthy は、AWS のシニア Software Engineer です。彼は、AWS のお客様のユーザーエクスペリエンスを向上させ、すべての AWS のサービスで統一された通知エクスペリエンスを構築することに情熱を注いでいます。

原文はこちらです。