В настоящее время я пытаюсь создать приложение Java, которое может вызывать и ссылаться на API Amazon AWS через AWS Java SDK.Мне удалось напрямую звонить в такие службы, как S3 и EC2, но когда я пытаюсь получить данные из Cloudwatch, я не могу получить точки данных.
Я пытался настроить различные переменные (измерения, изменение времени).переменные), и я попытался вытащить данные через CLI.Когда я запрашиваю данные через CLI, я могу получить точки данных, но приложение Java не получает те же данные.Вот мой код CLI:
aws cloudwatch get-metric-statistics --metric-name BucketSizeBytes --namespace "AWS/S3" --start-time 2019-06-21T00:00:00Z --end-time 2019-06-22T00:00:00Z --period 3600 --statistics Average --unit Bytes --output json --region us-east-1 --dimensions Name=BucketName,Value=XXXXX Name=StorageType,Value=StandardStorage
Вот то, что я использую на стороне Java.Пространство имен переменной равно строке «AWS / S3», а переменная область имеет значение Region.US_EAST_1
Настройка клиента CloudWatch
private CloudWatchClient cwClient = CloudWatchClient.builder().region(region).build();
Вызов данных
public S3 individualS3BucketSize(S3 s3) {
Instant now = Instant.now();
Dimension dimensions = Dimension.builder().name("BucketName").value("XXXXX").name("StorageType").value("StandardStorage").build();
GetMetricStatisticsRequest request = GetMetricStatisticsRequest.builder().namespace(namespace).metricName("BucketSizeBytes")
.statistics(Statistic.AVERAGE)
.startTime(now.minus(Duration.ofDays(1))).endTime(now).period(3600)
.dimensions(dimensions)
.build();
GetMetricStatisticsResponse response;
response = cwClient.getMetricStatistics(request);
System.out.println(response.toString());
}
Когда метод вызывается и метод печати запускается, я получаю:
GetMetricStatisticsResponse(Label=BucketSizeBytes, Datapoints=[])
Любые мысли относительнопочему он возвращается пустым в приложении Java, а не в CLI?