実施のきっかけ
RDSのイベントサブスクリプションの機能があり、
通知先にSNSトピックを指定していたのですが、通知がきていないことに気づきました。
サポートに確認したのですが、
RDSのイベントサブスクリプションはChatbotに対応していないみたいで、
EventBridge + Chatbotで実装することにしました。
実際のコード
前提条件は記載のとおりですが、Dockerがインストールされていて
対象AWSアカウント上でChatbotとSlackの連携が完了していれば動くはずです。
MakefileでAWSのプロファイル名を指定しているのでそこは実行環境に合わせて
変更する必要があります。
TIPS
- Cloudformationのスタック名にアンダーバーが入っているとエラー
そのため以下のように文字列を置換しています。
const channelIdWithoutHyphens = channelId.replace(/_/g, "");
- SNSのアクセスポリシーがデフォルトのままだと通知が飛ばない
これドンピシャでした。
以前もハマった気がしたのですが、きちんとアウトプットしておかないと忘れがちですね。
- 対象チャンネルに @aws を招待しよう
これも忘れがちなので注意
次回予告
RDSイベント通知の実装はまた別記事にしていきます。(まだ実装中)