如何通过AWS-CLI删除Cloudwatch警报?

时间:2019-01-20 07:10:34

标签: amazon-web-services aws-cli amazon-cloudwatch

我必须在INSUFFICIENT_STATE中删除几乎3K +的Cloudwatch警报。

因此,我要处理- 1.通过终端获取所有状态为“ INSUFFICIENT”的警报的列表

aws cloudwatch describe-alarms --query 'MetricAlarms[*].AlarmName' --state-value INSUFFICIENT_DATA --output text > list.csv
  1. 仅通过终端对for循环运行文件
for i in `cat list.csv` ;do aws cloudwatch delete-alarms --alarm-names $i ;done
  1. 运行此命令后,不会从AWS删除警报。我使用列表中的5个警报测试了脚本,并且工作正常。但这不适用于其中包含更多警报名称的文件。

注意-运行命令时没有出现任何错误。

1 个答案:

答案 0 :(得分:1)

如Dejan所建议的,rate limit for deleteAlarms是每秒3个事务。该脚本在一个小时内删除了四千个警报:

oldIFS=$IFS; IFS=$'\t'
for alarm in $(aws cloudwatch describe-alarms --query 'MetricAlarms[*].AlarmName' --state-value INSUFFICIENT_DATA --output text); do                         
  echo $alarm; 
  aws cloudwatch delete-alarms --alarm-names $alarm 1>/dev/null; 
  sleep 0.5;
done
IFS=$oldIFS