【发布时间】:2022-01-13 16:20:22
【问题描述】:
我有一段在 AWS Lambda 函数中运行的 python 脚本,当 EC2 实例进入停止状态时删除 CloudWatch 警报。
elif 'source' in event and event['source'] == 'aws.ec2' and event['detail']['state'] == 'stopped':
instanceID = event['detail']['instance-id']
GetAlarmNamePrefix = "AutoAlarm-" + instanceID
print(GetAlarmNamePrefix)
for instance in instanceID:
print("deleting alarms for instance :" + instanceID)
AlarmNamePrefix = GetAlarmNamePrefix
response = cloudwatch.describe_alarms(AlarmNamePrefix=AlarmNamePrefix,)
alarm_list = []
if 'MetricAlarms' in response:
for alarm in response['MetricAlarms']:
alarm_name = alarm['AlarmName']
alarm_list.append(alarm_name)
print(alarm_list)
cloudwatch.delete_alarms(AlarmNames=alarm_list)
这段代码可以很好地删除警报,但是当我查看 CloudWatch 日志组中 Lambda 函数的执行日志时,我可以看到为同一个 CloudWatch 警报多次创建了大量事件。
请帮我修复此代码。
【问题讨论】:
标签: amazon-web-services aws-lambda amazon-cloudwatch cloudwatch-alarms