Amazon SNS から AWS Chatbot を経由した通知がうまくいかない原因と対処方法

テクニカルサポートノート。サービス名: AWS Chatbot, Amazon SNS, Amazon CloudWatch Events, Amazon EventBridge
2020.11.30

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

困っていた内容

同一のソースからのイベントの関して、Amazon SNS からのメールの通知は動作するのに、Amazon SNS から AWS Chatbot を経由した通知が動作しません。 こちらの原因と対処方法があれば教えてください。

どう対応すればいいの?

結論としては、AWS Chatbot がイベントソースをサポートしていないことが原因の一つとして挙げられます。 この場合の対処方法の一つとしては、Lambda を利用して通知する方法が考えれます。

以下、詳細な説明を記載します。

原因

Amazon SNS から AWS Chatbot を経由した通知が動作しない原因の一つとして、AWS Chatbot のサポート対象外のソースからのイベントを指定していることが考えられます。 AWS Chatbot は公式ドキュメントに記載されているサービスからの通知のみをサポートしています。

AWS Chatbot のよくある質問

Q: AWS Chatbot を使用して任意の通知を受け取ることができますか? いいえ、AWS Chatbot はドキュメントに記載されているサービスからの通知のみをサポートしています。サポート対象外のソースからのイベントはチャットルームに配信されません。

サポートしているサービスにつきましては、以下の公式ドキュメントを参照ください。 なお、冒頭の Topics に挙げられているものの、一部サポート対象外のイベントソースがある場合があります。 Topics だけではなく各 Topics 内の説明も確認いただくようご注意ください。

Using AWS Chatbot with other AWS services

Topics
・AWS Billing and Cost Management
・AWS CloudFormation
・Notifications for AWS developer tools
・Amazon CloudWatch Alarms
・Amazon CloudWatch Events

例えば、AWS Step Functions に関する Amazon CloudWatch Events を AWS Chatbot 経由で Slack に通知したいとします。 この場合、Amazon CloudWatch Events は AWS Chatbot サポート対象として、上記の公式ドキュメント冒頭の Topics に挙げれられていますが、 Topics 内の説明の通り、AWS Step Functions に関する Amazon CloudWatch Events は2020年11月30日時点ではサポート対象に含まれていない為、AWS Chatbot 経由で通知できない次第です。

Using AWS Chatbot with other AWS services -> Amazon CloudWatch Events

AWS Chatbotは、AWS Config、Amazon GuardDuty、AWS Health、AWS Security Hub、およびAWS SystemsManagerのAWSサービスのCloudWatchイベントをサポートしています。

本記事公開時点より、多くのイベントソースが AWS Chatbot でサポートされました!詳細は以下のブログを参照ください。

[アップデート] ついに AWS Chatbot が 200を超える Amazon EventBridge イベントに対応しました!

対処方法

対処方法としては、以下の公式ドキュメントに記載の通り、Chatbot を使わずに Lambda を利用する方法が挙げれますのでご検討下さい。

ウェブフックを使用して Amazon SNS メッセージを Amazon Chime、Slack や Microsoft Teams に発行する方法を教えてください

AWS Lambda 関数を使用して、ウェブフックエンドポイントが処理できるように、Amazon SNS メッセージ本文の JSON ドキュメントを変換することができます。