クラウド事業部 インフラエンジニアの吉岡です。
AWS Chatbot(beta版)を用いたSlack通知を試してみましたので、ご紹介したいと思います。
目次
AWS Chatbotとはどういった機能なのか
Slack チャンネルや Amazon Chime チャットルームに対して通知を行う機能です。
サポートしているサービスの通知をSNSトピックに転送し、
SNSトピックからChatbotを経由して各チャットサービスに表示することができます。
現在対応しているサービスは下記の通りです。
1AWS Billing and Cost Managemen
2AWS CloudFormation
3AWS CodeBuild等の開発者用ツール
4Amazon CloudWatch Alarms
5Amazon CloudWatch Events
6AWS Config
7AWS Health
8AWS Security Hub
9Amazon GuardDuty
10AWS Systems Manager
今回はAWS System ManagerのRunCommandを実行し、Slackに通知します。設定する通知フローは下記の図の通りです。
手順
- SNSトピックの作成
Amazon SNS→トピック→トピックの作成と進み、適当な名前を付けたトピックを作成します。(サブスクリプションはまだ設定しません。)
- CloudWatchEventの設定
CloudWatch→ルールの作成、と進みルールを作成します。
今回はchatbot-testという名前で作成しました。
サービス名:EC2 Simple Systems Manager(SSM)
イベントタイプ:すべてのイベント
ターゲット:SNSトピック(先ほど作成したトピック)
- Chatbotのインストール
AWS Chatbotを選択し、
Chatbotの設定を始めていきます。
通知を送る先となるChatツールを選択します。
SlackにChatbotをインストールします。
今回はpublicのslacktestというチャンネルに通知するように設定します。
IAMロールは自動作成、ロール名はchatbot-slackとしました。
SNS regionはSNSトピックの設定されているリージョン(今回は東京リージョン)
SNS topicsは先ほど作成したchatbot-testを指定します。
設定が完了すると、SNSトピックにサブスクリプションが追加されていることが確認できます。
動作確認
RunCommandを実行し、Slackに通知されることを確認します。
今回はAWS-RunShellScriptでechoコマンドを実行します。
インスタンス指定
SNS通知なし
の条件で下記の内容で実行します。
1#!/bin/bash
2echo "Hello chatbot"
実行後に下記の様な通知がSlackに届いていることが確認できました。
あとがき
今回はChatbotを用いてSlack通知を行うために必要な作業がどういったものか、勉強を兼ねて試してみましたが、非常に簡単に設定ができました。
現在はbeta版ですので、一部の環境のみですが、シーズではこの機能を利用してAWS Health Dashboardの情報をslack通知する設定を行っています。
CloudTrailが有効化されていることが前提ですが、セッションマネージャーを使ったログイン時に通知が届くような設定もできるようです。
正式なリリースが楽しみですね!