AWS SDK for Python (Boto3) を使って Lambda で CloudWatch Alarm を削除するサンプルコードを紹介します。
エラーハンドリングも実装済みです。
Python Boto3 で CloudWatch Alarm を削除する
- Boto3 で CloudWatch Alarm を削除できます。
- 削除したい CloudWatch Alarm のアラーム名をリストで渡します。
import boto3
cloudWatch = boto3.client('cloudwatch')
alarms = ['your-alarm-1', 'your-alarm-2', 'your-alarm-3']
cloudWatch.delete_alarms(AlarmNames=alarms)
Python Boto3 を使って Lambda で CloudWatch Alarm を削除する
- 削除対象のアラーム名のリストを引数とします。
- Boto3 で CloudWatch Alarm を削除します。
- 処理に失敗した場合はエラー内容を返します。
- 削除に成功した場合に削除対象のアラーム名のリストを返します。
import boto3
import botocore
import traceback
def lambda_handler(event, context):
"""
CloudWatch Alarm を削除する
Parameters
----------
event['alarms']: list
削除対象のアラーム名のリスト
Returns
-------
result: bool
処理に成功した場合 True、失敗した場合 False を返す。
error_message: str
処理に失敗した場合エラーメッセージが格納される。
deleted_alarms: str
処理に成功した場合削除した CloudWatch Alarm の名前リストが格納される。
"""
key_alarms = "alarms"
# 引数確認
if key_alarms not in event:
return {
"result": False,
"error_message": "パラメータが存在しません。"
}
# 削除する Alarm 名のリストを用意する
alarms = event[key_alarms]
cloudWatch = boto3.client('cloudwatch')
try:
cloudWatch.delete_alarms(AlarmNames=alarms)
except botocore.exceptions.ClientError as e:
# 例外が発生した場合はレスポンスに含める
return {
"result": False,
"error_message": f'{e.response["Error"]["Code"]}\n{traceback.format_exc()}'
}
# 正常終了
# 削除した Alarm の名前をリストで返す
return {
"result": True,
"deleted_alarms": alarms
}