michimani.net

AWS Chatbot を使って Amazon Chime のチャットルームに CloudWatch Alarm の通知を飛ばしてみる

2020-05-14

AWS Chatbot は連携先のクライアントとして、 Slack と Amazon Chime を選択することができます。 Slack に関しては以前に別のエントリで書いたので、今回は Amazon Chime をクライアントとして AWS Chatbot と連携してみます。

目次

概要

AWS Chatbot と Amazon Chime を連携させて、 Amazon Chime のチャットルームに CloudWatch Alarm の通知を飛ばしてみます。

やることとしては次のとおりです。

  1. Amazon Chime で Webhook URL を生成
  2. AWS Chatbot でクライアントの設定

より詳細な手順については下記の公式ドキュメントの Setting up AWS Chatbot with Amazon Chime パートを参照してください。

前提

Amazon Chime でチャットルームの作成をするには Amazon Chime のアカウントを作成している必要があります。アカウントの作成については省略するので、下記のリンクから作成しておきます。

1. Amazon Chime で Webhook URL を生成

まずは Amazon Chime で Webhook URL を生成します。ここからの操作は Amazon Chime の Web クライアント、およびデスクトップクライアントで行います。今回は Web クライアントで操作してみますが、デスクトップクライアントでもほぼ同じです。

チャットルームを作成する

Webhook URL はチャットルームに対して作成するので、まずはチャットルームを作成します。

Home の右側にある Quick actions の中から Create a new chat room をクリックします。

Amazon Chime create chat room

チャットルームの名前を入力するダイアログが表示されるので、任意の名前を入力して Create ボタンを押します。

Amazon Chime create chat room | input name

これでチャットルームが作成され、画面左の CHAT ROOMS に表示されます。

Amazon Chime create chat room | created

Webhook URL を生成する

続いて Webhook URL を生成します。
先ほど作成したチャットルームを開いて、画面上にある設定アイコンを押します。表示されるメニューから Manage webhooks and bots を選択します。

Amazon Chime create webhook url

すると次のようなダイアログが表示されるので、上部の Add webhook をクリックします。

Amazon Chime create webhook url 2

選択中のチャットルームに対する webhook を作成するダイアログが表示されるので、任意の名前を入力して Create ボタンを押します。

Amazon Chime create webhook url 3

これで webhook が作成され、 Manage webhooks and bots のダイアログに一覧として表示されます。 Copy URL をクリックして、作成した webhook の URL をコピーしておきます。

Amazon Chime create webhook url 4

2. AWS Chatbot でクライアントの設定

続いて、 AWS Chatbot でクライアントの設定をします。 前回 はチャットクライアントとして Slack を選択しましたが、今回は Amazon Chime を選択します。

setup AWS Chatbot with Amazon Chime

すると、次のような Amazon Chime ウェブフックの設定フォームが表示されます。

setup AWS Chatbot with Amazon Chime 2

クライアントを Slack にした場合との違いは、一番上の 設定の詳細 の項目です。

名前

設定する Amazno Chime Webhook の名前を入力します。 名前には a-z, A-Z, 0-9, -, _ を使用できます。

ウェブフック URL

先ほどコピーしておいた Amazon Chime の Webhook URL を入力します。

ウェブフックの説明

ここも必須になっているので、この設定に関する説明を入力します。説明のフォーマットとして チャットルーム名/ウェブフックの目的 を書かれていますが、特にこのフォーマットである必要はありません。


以降の設定については Slack の場合と同様です。アクセス許可については、ポリシーテンプレートから 通知のアクセス許可 を選択しておきます。

通知用の SNS トピックを指定して 設定 ボタンを押します。

これで AWS Chatbot のクライアント設定が完了しました。

setup AWS Chatbot with Amazon Chime 3

CloudWatch Alarm を Amazon Chime のチャットルームに通知する

では、 AWS Chatbot 経由で CloudWatch Alarm の通知を Amazon Chime のチャットルームに飛ばしてみます。今回も 前回 と同様に CloudFront の Alarm 画面から、あるディストリビューションに対する 4xx Error Rate に関するアラームを設定しました。

設定後、該当のディストリビューションに対して意図的に 4xx エラーを発生させて暫く待つと、次のような通知が Amazon Chime のチャットルームに届きました。

notification from AWS Chatbot to Amazon Chime hcat room

ちなみに、同時に Slack の方にも届いた通知は次のような内容でした。

notification from AWS Chatbot to Slack

内容は全く同じですね。

まとめ

AWS Chatbot と Amazon Chime を連携させて、 Amazon Chime のチャットルームに CloudWatch Alarm の通知を飛ばしてみた話でした。
クライアント設定の部分が違うだけで、 Slack の場合と同様に整形された通知を受け取ることができました。個人的には Amazon Chime はオンラインセミナーでの Instant meeting しか利用したことがなかったのですが、 Slack が利用できない環境の場合は Amazon Chime のチャットルームで通知を確認する方法もあるということがわかりました。

ただ、 Slack と違って AWS Chatbot をチャットルームに招待するわけではなく Webhook での連携なので、チャットルームから AWS CLI コマンドを実行することはできないようです。CLI コマンドの実行もしたい場合は Slack を利用したほうが良さそうです。


comments powered by Disqus