我正在尝试通过aws-sdk获取一些cloudwatch / rda指标
由于使用的用户Im没有足够的权限访问cloudwatch资源,因此我首先需要担任一个角色,这似乎还可以。
sts.assumeRole(paramsts, function(err, data) {
if (err) console.log("Cannot assume role. Received the following error: " +err.stack);
else {
AWS.config.update({
accessKeyId: data.Credentials.AccessKeyId,
secretAccessKey: data.Credentials.SecretAccessKey,
sessionToken: data.Credentials.SessionToken
});
console.log(data)
它还给我一个令牌 似乎是正确的信誉
{ ResponseMetadata: { RequestId: 'XXXXXXX' },
Credentials:
{ AccessKeyId: 'XXXXXXXX',
SecretAccessKey: 'XXXXXXXXX',
SessionToken:
'mytoken',
Expiration: sometimes soon },
AssumedRoleUser:
{ AssumedRoleId: 'blablabla',
Arn:
'arn:aws:sts::numbers:assumed-role/myroles' } }
现在在此调用中,我使用getMetricData而不返回任何数据。即使我搜索不存在的商品,我总是会得到相同的答案
cw.getMetricData(params, function(err, data) {
if (err) {
console.log("Error", err);
} else {
console.log(data);
}
});
它总是向我输出:
{ ResponseMetadata: { RequestId: 'XXXXx' },
MetricDataResults:
[ { Id: 'freestorage',
Label: 'FreeStorageSpace',
Timestamps: [],
Values: [],
StatusCode: 'Complete',
Messages: [] }, ] }
当Im使用getMetricData时,似乎未正确承担该角色。我想念什么吗?
当以相同的参数担任相同的角色时,我能够从cli中获取数据,但是这段代码总是返回0个值/每个数据点。