#ごあいさつ
こんにちは、kimuraです。
今回はβ発表されているAWS Chatbotをslackで設定してみます。
まだまだ使い勝手は良くないですが、非常に将来に期待のできるサービスですので、ぜひ試してみてください。
#本日は先に注意点!
本日は先に注意点を書いておきます。
設定した後にやりたいことと違った、というのでは残念なことになりますので。
- 2019年9月16日現在、対応しているサービスは下記のみです。
上記の開発者ガイドのQAによれば、今現在でchatbot経由での通知に対応しているサービスは
- AWS Billing and Cost Management
- AWS Config Events
- Amazon GuardDuty Events
- AWS Health Events
- AWS Security Hub Events
- AWS Systems Manager Events including the following:
- AWS Systems Manager Configuration Compliance Events
- AWS Systems Manager Maintenance Windows Events
- AWS Systems Manager Parameter Store Events
のみです。
これ以外のサービスからのメッセージは無視されます。
なので、例えばLambdaファンクションのfaildを検知させようとしてもできませんので注意してください。
どんどん増えてはいるようなので、ドキュメントの更新を待ちましょう。
- slackを無料で使っている場合はアプリを10個までしかインストールできません
後ほど説明しますが、AWS Chatbotをslackにインストール(連係)する必要があります。
slack無料利用だと、10個までしかアプリが使えないので、webhookいっぱい使ってる人は気を付けましょう。
- chatbot削除時は、slackからアプリを消すのではなく、最初にAWS chatbotの設定を削除してください
先にAWS Chatbotの設定を削除してからでないと、権限不足で削除ボタンが機能しなくなります。
もし、先にslackのアプリの方を先に削除した場合は、もう一度別途同じ設定でAWS Chatbotを新規作成すると、slack連携が元に戻ります。
先にAWS側の設定を全て削除してからslackのアプリを削除しましょう。
設定開始
####まずは、SNSトピックを作りましょう。
既存のものでも構いませんが、サブスクリプションがchatbotサービスによって自動で作られるので、他と混じるのが嫌な場合は別途作ってください。
サブスクリプションはこの時作成する必要がありませんので、空のトピックを作るだけです。
注意点は、例えばCloudwatchアラームから連携する場合などは、各リージョンにSNSトピックを作成しておく必要がある、というところです。
####AWS Chatbot作成
AWS Chatbotは「管理とガバナンス」のところにあります。
もしくは検索でchatbotなどを選択しましょう。
初期画面で新規作成(configure new client)すると、slackかchimeを選択する画面になります。
今回はslackを選択します。
とはいえ、chimeでもやることはそう変わらないと思われます。
「configure」をクリックすると、ブラウザでログインしているワークスペースが表示されます。
ログインしていなければワークスペース名を入力する画面が表示されますので、正しく入力し、ログインしてください。
設定画面は全部で三つのパートに分かれます。
まずはslackのチャンネルを選択しましょう。
Publicであれば、下の検索画面で選択が可能です。Privateであればチャンネル名を明記してください。
IAMについては初回であれば新規作成で問題ありません。
今現在の連携サービスであれば、Cloudwatchの閲覧系権限が全てあれば問題ありません。
最後にSNSトピックスを選択します。
リージョンと、先ほど作成したトピックスを選択しましょう。
最初の画面に戻ると、chatbot用のコンフィグが作成済みになっています。
####トピックスを確認
chatbot作成後に、SNSトピックスを見に行くと、自動的にサブスクリプションが作成されています。
エンドポイントはslackのchatbot用になっているはずです。
もし作成されていない場合は、もう一度AWS Chatbotの管理画面でSNSトピックを外して登録、再度SNSを登録し直すと上手くいきます。
####slack側の設定
これでAWS側の設定はほぼ完了しました。
後はslack側の設定を終えれば、疎通確認ができます。
今回はchatbot用にチャンネルを作成しました。
このチャンネルに「アプリを追加する」してください。
AWS Chatbotが表示されていますので、「追加」してください。
これで連携は完了です。
####疎通テストをしよう
連携サービスがhealthとか、GuardDutyとか即時試せないものばかりなので、Cloudwatchアラームで上図のようなアラームを入れました。
slackに通知されると上のようになります。
自分でLambdaなどを使ってslack通知するよりは整理されている感じがしますね。
今後も対応サービスは増えていくと思いますので、楽しみですね。