インプットトランスフォーマーを使ってSNS通知を読みやすくする
はじめに
CloudWatchルールからのSNS通知は、なにも設定しない場合、 JSONで通知されてきます。
JSONだと読み辛いのでインプットトランスフォーマーを設定してみました。
今回はEC2インスタンスがrunnningになったときに リージョンとインスタンスIDだけを通知してくれるよう設定しました。
手順
CloudWatchルールの設定
イベントソース
以下を設定しました。
サービス名 : EC2 イベントタイプ : EC2 Instance State-change Notification 特定の状態 : running
ターゲット
SNSトピックを選んでインプットトランスフォーマーは以下を設定しました。
■入力パス
{ "region": "$.region", "instance-id": "$.detail.instance-id" }
■入力テンプレート
"■お知らせ" "リージョン<region>のインスタンス<instance-id>が起動しました。"
EC2インスタンスの起動&SNSのメールを確認
EC2インスタンスを起動するとSNSから以下のようなメールが送信されてきました。 ちゃんと人が読める形になってます。
"■お知らせ" "リージョンap-northeast-1のインスタンスi-0868c4f305564051aが起動しました。"
終わりに
JSONから人の読みやすい形に変えて通知できました。
参考サイト
特定の AWS サービスのイベントタイプがトリガーされた時にカスタム SNS 通知を送信するには、GuardDuty の CloudWatch Events ルールをどのように設定すればよいですか? https://aws.amazon.com/jp/premiumsupport/knowledge-center/guardduty-cloudwatch-sns-rule/
[新機能] Amazon CloudWatch EventsのInput Transformerを試してみた https://dev.classmethod.jp/articles/cloudwatch-events-inputtransfer/