クラウドインテグレーション部の村上です。
今回は色々なところでよく登場するCloudWatchアラームの動作テストについて書きます。
どんなときに使うか
絵にするとこんな感じです。 CloudWatchアラームを使う場合、主に以下のことを検証すると思います。
前処理をきっかけにCloudWatchアラームがちゃんと動作するか
CloudWatchアラームが動作した後、ちゃんと後続処理が動作するか
今回の動作テストは、意図的にアラーム状態をつくりだすものなので、2番を検証したいときに使用します。
意図的にアラーム状態にする方法
AWS CLIのaws cloudwatch set-alarm-state
を使用します。
主なオプションは以下のとおりで、詳細はドキュメントを参照してください。
--alarm-name <value>
- アラームの名前
--state-value <value>
- アラームの状態を指定。
OK
、ALARM
、INSUFFICIENT_DATA
のいずれか。
- アラームの状態を指定。
--state-reason(文字列)
- アラームがその状態になった理由
実際にやってみた
CloudWatchアラームの作成
余談ですが、少し前までAmazon Connectを触っていたので、エージェントが電話をとれなかったらアラーム状態にする、ということをやってみます。
Amazon Connectのメトリクスのひとつである、MissedCalls
メトリクスはエージェントが20秒以内に電話に出られなかった通話が対象なので、このメトリクスを基にCloudWatchアラームを作成します。
適当なアラームの条件を決め、後処理としてSNSを使ってメール送信をします。
※またまたAmazon Connectの余談ですが、例えば空いているエージェントがいれば電話を繋ぎ、いなければ自動音声を流すみたいな、エージェントの空き状況によって処理を変えるのはConnect自体の機能で設定可能です。
ですので、今回想定する場面としては、「電話に出られるエージェントがいるのに20秒以上電話に出ない」というものになります。
意図的にアラーム状態にする
手元のPCで以下のコマンドを実行するだけです。
aws cloudwatch set-alarm-state --alarm-name "ConnectMissedCall" --state-value ALARM --state-reason "テスト目的"
※ConnectMissedCall
の部分はご自身のアラーム名に変更してください。
※テスト目的
の部分も適宜、変更してください。
コマンドを実行すると以下のようにアラーム状態に変わりました(しばらくすると元に戻ります)!
後続処理のSNSも動いています。
後続処理のテストをしたいとき、このコマンドを使えば、すごく手っ取り早くアラーム状態にできるので便利です。