CloudWatchでセットしたアラームの通知テストをする。
はじめに
CloudWatchでアラームを設定した際、ちゃんとアクションが実行されるのかテストしたくなりますよね? それが定時通知ならまだしも、エラー通知とかだと設定したあとで結局エラー発生しないと(またはさせないと)確認できないのはちょっと。。。 そんな時にaws-cliを利用すれば簡単に通知テストを行うことができますー。
# あらかじめ 今回は事前にアラームの設定はできている状態です。  「*Error-CheckSnapshotLog*」という名前のアラームです。 直接は関係ありませんが、内容としては毎日Lambdaで取得しているスナップショットが失敗した時に通知されます。 普段は**不足(INSUFFICIENT_DATA)**となっていますが、なんらかの理由で*Lambda*の実行が失敗すると**Error**を吐くのでそれを検知したら指定したメールアドレスへ通知される仕組みです。
# 実践 ということで、このアラームが通知されるかどうかテストします。
$ aws cloudwatch set-alarm-state --alarm-name "Error-CheckSnapshotLog" --state-value ALARM --state-reason "alarm-test"
このたった1行で完了ですw
| オプション | 説明 |
|---|---|
| —alarm-name | アラーム名 |
| —state-value | ステータス |
| —state-reason | 説明 |
これだと簡単に終わっちゃうので一応説明。 今回は”Error-CheckSnapshotLog”のステータスをaws-cliで強制的にINSUFFICIENT_DATAからALARMというステータスに変更しています。 今回はテスト実行なので*—state-reason*を”alarm-test”としています。
# 結果 それではちゃんとCloudWatchのアラーム通知はされているのでしょうか? 
どうやらちゃんと通知ができたみたいです。 これで通知されないことが幸せなアラームに対しての通知テストができました。
# おわりに CloudWatchアラームを設定したけど「これってちゃんと通知されるのかな?」と不安になってしまった時に便利なコマンドですね! ただ、、、このコマンドってあくまで**ステータス変更**を行うだけなので、実際の条件が正しいかまでは。。。というオチがあったりもw