話題の記事

ついに来た! AWS Chatbot が一般公開(GA)になりました! Slack連携が捗ります!

AWS Chatbotが一般公開(Generally Available)になりました。これを活用すれば、AWSとSlackの連携が超簡単にできるようになります。
2020.04.23

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

ついに、AWS Chatbotが一般公開(GA)になりました!!

AWS Chatbotを使えば、「AWSとSlack」または「AWSとAmazon Chime」の連携が超簡単にできます!

  • AWS上のイベントをSlackに通知する
  • SlackのコマンドでLambdaを実行する
  • など

追加料金が無いのも嬉しいですね!

AWS Chatbotとは

AWS Chatbot を使用すると、複数の AWS のサービスを Slack チャンネルおよび Amazon Chime チャットルームと安全かつ簡単に統合し、ChatOps を実現できるようになります。AWS Chatbot を使用すると、運用イベント、セキュリティ検出結果、または予算アラートに関する通知を、チーム全体が確認して議論できるチャットルームで受信できます。 Slack からコマンドを実行して、診断情報を取得したり、AWS Lambda 関数を呼び出したり、AWS サポートのケースを作成したりできます。

https://aws.amazon.com/jp/chatbot/faqs/

AWS Chatbotの対応サービス

  • CloudWatch
  • Security Hub
  • GuardDuty
  • など

参考: Using AWS Chatbot with other AWS services - AWS Chatbot

AWS Chatbot を使用すると、CloudWatch アラーム、Health イベント、Security Hub の検出結果、Budgets アラート、CloudFormation スタックイベントに関する通知を受け取ることができます。

https://aws.amazon.com/jp/chatbot/faqs/

CloudWatch AlarmをSlackに通知してみる

お試しとして、LambdaのエラーをSlackに通知する仕組みを作ってみます。

  1. SNS Topicを作成する
  2. AWS Chatbotを作成する
  3. Lambdaを作成する
  4. CloudWatch Alarmを作成する
  5. 実際にエラーを発生させる
  6. Slackに通知が来る!

1. SNS Topicを作成する

test-aws-chatbot-notificationを作成します。

2. AWS Chatbotを作成する

AWS ChatbotにアクセスしSlackを選択します。

「新しいチャンネルを設定」します。

「設定名」と「通知先のチャンネル名」を入力します。

アクセス許可を設定します。ここでは同時にIAMロールの作成をしています。

最後にさきほど作成したSNSトピックを選択します。

3. Lambdaを作成する

適当なLambdaを作成します。絶対にエラーが発生するようにしています。

def lambda_handler(event, context):
    raise NotImplementedError('for Lambda Error')

4. CloudWatch Alarmを作成する

Lambdaで発生したエラーを通知させるための設定を行っていきます。1分間に1回以上のエラーを検知します。

アラーム状態になったとき、さきほど作成したSNSトピックに送信させます。

最後にアラーム名を入力して作成完了です!

5. 実際にエラーを発生させる

Lambdaを手動実行し、エラー発生させます。

6. Slackに通知が来る!

きました!!

さいごに

一般公開を今か今かと待ちわびていました。これから色々と遊んでみます!

参考