LambdaでBoto3を使ってCloudWatch Alarmを削除する方法まとめ

CloudWatch

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
    }
タイトルとURLをコピーしました