删除所有带状态的警报

Delete All alarms with state

是否可以使用 AWS SDK java 删除所有具有状态(INSUFFICIENT_DATA 或任何其他)的警报?

我在这里没有看到任何方法。

    AmazonCloudWatch cloudWatch = getAmazonCloudwatchClient();
    DeleteAlarmsRequest request = new DeleteAlarmsRequest();

使用DeleteAlarms():

public DeleteAlarmsResult deleteAlarms(DeleteAlarmsRequest request)

我想到了这个方法,它对我很有帮助。

  AmazonCloudWatch cloudWatch = getAmazonCloudwatchClient();
  List<MetricAlarm> alarmsList = new ArrayList<>();
    do {

        DescribeAlarmsResult result = describeAlarms(cloudWatch, nextToken);
        nextToken = result.getNextToken();
        alarmsList.addAll(result.getMetricAlarms());
    }
    while (nextToken != null);

    for(MetricAlarm alarm : alarmsList){
        DeleteAlarmsRequest request = new DeleteAlarmsRequest();
        request.withAlarmNames(alarm.getAlarmName());
        cloudWatch.deleteAlarms(request);
    }

 private static DescribeAlarmsResult describeAlarms(AmazonCloudWatch cloudWatch, String nextToken){
    DescribeAlarmsRequest request = new DescribeAlarmsRequest();
    request.withStateValue("INSUFFICIENT_DATA");
    request.withNextToken(nextToken);
    return cloudWatch.describeAlarms(request);
}