getMetricData不是使用假定的角色吗?

时间:2018-11-21 09:05:16

标签: node.js amazon-cloudwatch aws-sdk-js

我正在尝试通过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个值/每个数据点。

0 个答案:

没有答案