Я пытаюсь получить размеры сегментов (BucketSizeBytes) моих сегментов S3 через Cloud Watch getMetricStatistics
.
Я чувствую, что все настроено, но SDK не возвращает точек данных:
{ ResponseMetadata: { RequestId: 'ad520gfd4-7764-11e7-8084-2718255a18ba' },
Label: 'BucketSizeBytes',
Datapoints: [] }
Я установил приложение узла, которое запускает следующий код:
const AWS = require('aws-sdk');
AWS.config.loadFromPath('./config.json');
const cloudwatch = new AWS.CloudWatch();
var startTime = new Date(2017, 07, 15);
var endTime = new Date(2017, 08, 01);
var params = {
EndTime: endTime,
MetricName: 'BucketSizeBytes',
Namespace: 'AWS/S3',
Period: 3600,
StartTime: startTime,
Dimensions: [
{
Name: 'StorageType',
Value: 'StandardStorage'
}
],
Statistics: [
'Average'
],
Unit: 'Bytes'
};
cloudwatch.getMetricStatistics(params, function(err, data){
if(err) {
console.log(err, err.stack);
} else {
console.log(data);
}
});
Я дважды проверил свой регион в файле конфигурации, который установлен на Франкфурт (eu-central-1), и, чтобы убедиться, я даже попытался подключиться к S3 в том же файле, в котором, как и ожидалось, перечислены мои сегменты:
var S3 = new AWS.S3();
S3.listBuckets(function(err, data) {
if (err) { console.log("Error:", err); }
else {
for (var index in data.Buckets) {
var bucket = data.Buckets[index];
console.log("Bucket: ", bucket.Name, ' : ', bucket.CreationDate);
}
}
});
Я также попытался установить точно такие же startDate и endDate в интерфейсе облачных часов AWS, чтобы убедиться, что в нем есть данные. Это было так. Так что я просто не понимаю, почему я не получаю обратно данные? Есть идеи, что я могу сделать, чтобы это исправить?