重命名Amazon CloudWatch警报

时间:2013-10-21 17:50:05

标签: amazon-cloudwatch

我正在尝试组织大量的CloudWatch警报以实现可维护性,并且Web控制台会在编辑时显示名称字段。是否有另一种方法(最好是可编写脚本的方法)来更新CloudWatch警报的名称?我更喜欢一种除了简单的可执行脚本之外不需要任何编程的解决方案。

3 个答案:

答案 0 :(得分:3)

这是我们暂时用来执行此操作的脚本:

import sys
import boto


def rename_alarm(alarm_name, new_alarm_name):
    conn = boto.connect_cloudwatch()

    def get_alarm():
        alarms = conn.describe_alarms(alarm_names=[alarm_name])
        if not alarms:
            raise Exception("Alarm '%s' not found" % alarm_name)
        return alarms[0]

    alarm = get_alarm()

    # work around boto comparison serialization issue
    # https://github.com/boto/boto/issues/1311
    alarm.comparison = alarm._cmp_map.get(alarm.comparison)

    alarm.name = new_alarm_name
    conn.update_alarm(alarm)

    # update actually creates a new alarm because the name has changed, so
    # we have to manually delete the old one
    get_alarm().delete()

if __name__ == '__main__':
    alarm_name, new_alarm_name = sys.argv[1:3]

    rename_alarm(alarm_name, new_alarm_name)

它假设您在具有允许此角色的角色的ec2实例上,或者您的凭据中包含〜/ .boto文件。手动添加你的内容很容易。

答案 1 :(得分:2)

不幸的是,目前看来这是不可能的。

答案 2 :(得分:0)

我四处寻找相同的解决方案,但似乎控制台和cloudwatch API均未提供该功能。

注意:

  

但是我们可以使用相同的参数复制现有的alram并保存为新名称