gpt4 book ai didi

node.js - AWS Node SDK 云监视返回零数据点

转载 作者:太空宇宙 更新时间:2023-11-04 02:02:37 24 4
gpt4 key购买 nike

我正在尝试通过 Cloud Watch getMetricStatistics 获取 S3 存储桶的存储桶大小 (BucketSizeBytes)。

我感觉一切都已设置完毕,但 SDK 没有返回数据点:

{ ResponseMetadata: { RequestId: 'ad520gfd4-7764-11e7-8084-2718255a18ba' },
Label: 'BucketSizeBytes',
Datapoints: [] }

我已经设置了一个运行以下代码的 Node 应用程序:

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);
}
}
});

我还尝试在 AWS 云监视界面中设置完全相同的 startDate 和 endDate 以确保它有数据。它做了。所以我只是不明白为什么我没有得到任何数据点?关于我可以做些什么来解决这个问题有什么想法吗?

最佳答案

事实证明问题出在我的日期变量上。我仍然习惯了 JavaScript 日期是从 0 开始的奇怪事实,所以我实际上试图从 future 的日期范围获取数据(令人尴尬)。用以下内容替换日期变量解决了这个问题:

var startTime = new Date(2017, 06, 19); // 2017-07-18T22:00:00.000Z
var endTime = new Date(2017, 07, 02); // 2017-08-01T22:00:00.000Z

非常感谢Michael - sqlbot给小费。必须将其输入 aws cli 迫使我输入日期值,然后我得到了预期的结果。

关于node.js - AWS Node SDK 云监视返回零数据点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45457062/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com