-1

假设我有组织并且我想根据帐户明智地获得成本。我怎么才能得到它?

我正在使用aws-sdknodejs。如何列出所有帐户并明智地获取成本帐户?

我为此使用 AWS lambda。任何帮助将不胜感激。

我正在尝试在下面使用单个帐户但我无法设置维度,并且我对在线资源无能为力

var params = {
  Granularity: DAILY | MONTHLY | HOURLY, /* required */
  Metric: BLENDED_COST | UNBLENDED_COST | AMORTIZED_COST | NET_UNBLENDED_COST | NET_AMORTIZED_COST | USAGE_QUANTITY | NORMALIZED_USAGE_AMOUNT, /* required */
  TimePeriod: { /* required */
    End: 'STRING_VALUE', /* required */
    Start: 'STRING_VALUE' /* required */
  },
  Filter: { /* Expression */
    And: [
      /* recursive Expression */,
      /* more items */
    ],
    CostCategories: {
      Key: 'STRING_VALUE',
      MatchOptions: [
        EQUALS | ABSENT | STARTS_WITH | ENDS_WITH | CONTAINS | CASE_SENSITIVE | CASE_INSENSITIVE,
        /* more items */
      ],
      Values: [
        'STRING_VALUE',
        /* more items */
      ]
    },
    Dimensions: {
      Key: AZ | INSTANCE_TYPE | LINKED_ACCOUNT | LINKED_ACCOUNT_NAME | OPERATION | PURCHASE_TYPE | REGION | SERVICE | SERVICE_CODE | USAGE_TYPE | USAGE_TYPE_GROUP | RECORD_TYPE | OPERATING_SYSTEM | TENANCY | SCOPE | PLATFORM | SUBSCRIPTION_ID | LEGAL_ENTITY_NAME | DEPLOYMENT_OPTION | DATABASE_ENGINE | CACHE_ENGINE | INSTANCE_TYPE_FAMILY | BILLING_ENTITY | RESERVATION_ID | RESOURCE_ID | RIGHTSIZING_TYPE | SAVINGS_PLANS_TYPE | SAVINGS_PLAN_ARN | PAYMENT_OPTION | AGREEMENT_END_DATE_TIME_AFTER | AGREEMENT_END_DATE_TIME_BEFORE,
      MatchOptions: [
        EQUALS | ABSENT | STARTS_WITH | ENDS_WITH | CONTAINS | CASE_SENSITIVE | CASE_INSENSITIVE,
        /* more items */
      ],
      Values: [
        'STRING_VALUE',
        /* more items */
      ]
    },
    Not: /* recursive Expression */,
    Or: [
      /* recursive Expression */,
      /* more items */
    ],
    Tags: {
      Key: 'STRING_VALUE',
      MatchOptions: [
        EQUALS | ABSENT | STARTS_WITH | ENDS_WITH | CONTAINS | CASE_SENSITIVE | CASE_INSENSITIVE,
        /* more items */
      ],
      Values: [
        'STRING_VALUE',
        /* more items */
      ]
    }
  },
  PredictionIntervalLevel: 'NUMBER_VALUE'
};
costexplorer.getCostForecast(params, function(err, data) {
  if (err) console.log(err, err.stack); // an error occurred
  else     console.log(data);           // successful response
}); 
4

2 回答 2

1

试试这个代码...确保您在 (~/.aws/credentials) 中有凭证文件或按照https://stackoverflow.com/a/67059810/10214650中的步骤操作

报告.js

var AWS = require('aws-sdk');
AWS.config.update({region:'us-east-1'});

var costexplorer = new AWS.CostExplorer({apiVersion: '2017-10-25'});
var params = {
  Metrics: [ 
    'UNBLENDED_COST',
 ],
  TimePeriod: { 
    End: '', /* Fill the end date */
    Start: '' /* Fill the start date  */
  },
  Granularity: 'DAILY', /* MONTHLY or HOURLY */
  GroupBy: [
    {
      Key: 'LINKED_ACCOUNT',
      Type: 'DIMENSION' 
    },
  ]
};
costexplorer.getCostAndUsage(params, function(err, data) {
  if (err) console.log(err, err.stack); // an error occurred
  else     console.log(data);           // successful response
});

此代码提供贵组织中各个帐户的成本报告。

于 2021-04-12T15:22:08.270 回答
0

根据对原始问题的评论,您似乎是在直接复制官方 AWS API 文档。

如果您不习惯使用 AWS Cost Explorer API,获取每个账户成本的一种免费托管解决方案是注册一个Vantage 账户。当您将您的主 AWS 账户与 Vantage 连接时,默认情况下它会自动导入所有成员账户。从那里,如果您导航到他们控制台的“应计成本”部分,您可以按成员帐户过滤成本。

作为免责声明,我在 Vantage 工作,并且个人花了几个月的时间使用 Cost Explorer API,如果您不知道自己在做什么,它们往往会相当复杂,所以我想我会推荐它作为替代解决方案。

于 2021-04-01T14:01:32.693 回答