#はじめに
こんにちは、山田です。
今回は、CloudWatchAlarmのアラーム発動時間をスケジューリングしました。
#構成図
EventBrigdeにて、CloudWatchAlarmを無効/有効化する時間帯をスケジューリングする。
Lamandaにて、時間になったら、CloudWatchAlarm無効/有効化アクションを実行する。
#Lambdaの作成
① AWS管理コンソール -> Lambda -> 関数 -> 関数の作成をクリックする。
② 関数名を入力する。
※今回は「CloudWatchAlarm-enable-action」
と「CloudWatchAlarm-disable-action」
としました。
③ 使用する言語はPython3.8
を選択する。
④ 設定 -> アクセスの権限 -> 実行ロールの編集をクリックし、CloudWatchAlarmへのアクセス権限を持つロール
を選択する。
※IAMロールがない場合、新規で作成する。
⑤ CloudWatchAlarm-enable-actionとCloudWatchAlarm-disable-actionのコードを入力する。
import boto3
def lambda_handler(event, context):
cloudwatch = boto3.resource('cloudwatch')
alarm = cloudwatch.Alarm('test-alerm') #今回は「test-alarm」を対象。
alarm.enable_actions()
import boto3
def lambda_handler(event, context):
cloudwatch = boto3.resource('cloudwatch')
alarm = cloudwatch.Alarm('test-alarm') #今回は「test-alarm」を対象。
alarm.disable_actions()
#EventBrigdeルールの作成
① AWS管理コンソール -> EventBridge -> ルール -> ルールを作成をクリックする。
② 名前を入力する。
※今回は、「CloudWatchAlarm-enable-action-rule」
と「CloudWatchAlarm-disable-action-rule」
とする。
③ cron式でスケジューリングする。
今回は、毎年1月22日の午前10時30分にスケジューリングしてます。
④ ターゲットに先ほど作成した、Lambda関数を選択する。
今回はCloudWatchAlarm-disable-action
を選択し、時間になったらClouWatchAlarmが無効化になっていることを確認する。
#動作確認
① AWS管理コンソール -> CloudWatch -> すべてのアラームをクリックする。
② アクションが無効化になっていることを確認する。