根据文档,我可以使用Python来禁用这样的警报。但是,该选项只提供AlarmNames参数。我想使用arn禁用警报。
client = boto3.client('cloudwatch')
disable_alarm = client.disable_alarm_actions(AlarmNames=[name])
一个选项可能是使用ARN首先获取名称,然后使用该名称禁用它。但我该怎么做呢?
如果真的没有其他选择,您可能需要使用client.describe_alarms()
或等效分页器查询所有警报,并遍历它们,直到找到具有匹配ARN的警报。
下面的例子列出了所有的AlarmArn =>us-east-1
中的AlarmName关联:
session = boto3.session.Session(region_name="us-east-1")
client = session.client("cloudwatch")
nextToken = {}
while True:
result = client.describe_alarms(MaxRecords=100, **nextToken)
if 'MetricAlarms' in result:
for alarm in result['MetricAlarms']:
print("{} => {}".format(alarm['AlarmArn'], alarm['AlarmName']))
if 'CompositeAlarms' in result:
for alarm in result['CompositeAlarms']:
print("{} => {}".format(alarm['AlarmArn'], alarm['AlarmName']))
if 'NextToken' in result:
nextToken = {'NextToken': result['NextToken']}
else:
break
Boto3文档