我有许多与Dynamodb自动缩放相关的警报,显示INSUFFICIENT_DATA。所有这些都会增加我的AWS成本。
我可以删除它们吗?
如何自动删除它们?
答案 0 :(得分:0)
我的环境存在相同的问题,在该环境中,我有近600个INSUFFICIENT_DATA状态的警报。我确定我没有使用/不需要它们中的任何一个,所以我只运行了该脚本并将其全部删除。
//Delete CloudWatch Alarms by INSUFFICIENT_DATA
const AWS = require('aws-sdk');
AWS.config.update({
region: 'us-east-1'
})
const cloudwatch = new AWS.CloudWatch();
const params = {
StateValue: "INSUFFICIENT_DATA"
}
// Get Alarm Names with INSUFFICIENT_DATA state
cloudwatch.describeAlarms(params, (err, data) => {
if (err) {
console.log(err, err.stack);
}
else {
// delete alarms
const alarmNames = data.MetricAlarms.map(alarm => alarm.AlarmName);
const parmasDelete = {
AlarmNames: alarmNames
}
cloudwatch.deleteAlarms(parmasDelete, (err, data) => {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data);
})
}
});
这每次只会删除50条警报,但是如果您需要增加该限制,有一种方法可以执行此操作,只需检查aws-sdk
只需将以上代码保存在文件中,然后运行以下命令:node filename.js
filename.js-是您保存脚本的文件的名称
注意:您需要在保存此脚本的同一文件夹中安装aws-sdk,可以使用以下命令进行安装:npm install aws-sdk
希望这会有所帮助。