2017-10-10 129 views
0

我知道,为了获得AWS账户的详细费用,我需要启用程序化计费访问,并将账单报告推送到相应AWS账户中的S3存储桶。如何使用CloudWatch API获取AWS账户/服务成本?

这种方法适用于我。但是,问题在于要下载和处理的账单大小非常巨大,以至于仅获取过去几个月中所有链接的AWS账户的账户和服务级别成本。

我在尝试探索AWS CloudWatch API以获取链接的帐户级别成本。我试图让所有关联账户的列表,并使用下面的命令被他们消耗的服务:

aws cloudwatch list-metrics --namespace "AWS/Billing" 

预期其工作原理完全正确返回结果。然而,尝试使用下面的命令来获得这些帐户的费用时:

aws cloudwatch get-metric-statistics --namespace "AWS/Billing" 
--dimensions "Name=LinkedAccount,Value=<linked-account-id>" --metric-name=EstimatedCharges --start-time=2017-10-01T19:30:00Z --end-time=2017-10-10T19:30:00Z --period=3600 --statistics=Sum 

我得到以下形式的几乎是空的JSON:

{ 
    "Datapoints": [], 
    "Label": "EstimatedCharges" 
} 

我已确保我使用的是正确的关联账户ID和提供的其他参数如上所述。我在这里错过什么来获得帐户或服务级别的成本?

编辑1:我已将我的配置文件中的区域设置为us-east-1,因为该区域是命令工作的必填字段。这是不是原因?如果是,那么修复/解决方法是什么?

更新1:我能够得到整体AWS账户成本(主要账户成本+链接账户成本),使用上述API,仅通过调整尺寸,但我还是没能拿到个人账户/服务成本(主要和关联账户的个人成本)。

更新2:当我从需要成本的帐户使用IAM用户时,我可以获得关联帐户成本。但是,LinkedAccount维度仍然不起作用:当我使用主帐户的IAM用户使用LinkedAccount维度获取其关联帐户的成本时,它仍会返回空结果。我的期望是,由于我可以在主帐户的账单中获取关联账户的成本,并且在登录AWS门户时可以看到关联账户的成本,所以我应该能够使用CloudWatch获取关联账户的成本蜜蜂。仍在尝试使用使用CW API的主帐户的IAM用户获得链接帐户成本的解决方案。

回答

0

在结算首选项,您可以启用编程访问,

https://aws.amazon.com/blogs/aws/new-programmatic-access-to-aws-billing-data/

结算 - > S3(触发)CSV文件 - > LAMBDA - > S3(开票为 特定帐户)

您可以获得对lambda的警报并处理所有链接帐户的生成csv文件。

希望它有帮助。

EDIT1:

如果你想对这些指控进行调查,

AWS CloudWatch的得到度量统计--metric名EstimatedCharges --start时间2017-04 -08T23:18:00 - 结束时间2017-04-09T23:18:00 - 期间3600 - 名称空间AWS /计费 - 统计数据总和 - 维度名称= LinkedAccount,数值=合计 - 维度 名称=货币,价值= USD

您还需要提及其他货币维度。

如果cloudwatch没有任何数据,您将不会得到任何结果。

下面是结果我得到了链接帐户,

{ 
    "Datapoints": [ 
     { 
      "Timestamp": "2017-04-09T06:00:00Z", 
      "Sum": 70.34, 
      "Unit": "None" 
     }, 
     { 
      "Timestamp": "2017-04-09T22:00:00Z", 
      "Sum": 76.4, 
      "Unit": "None" 
     }, 
     { 
      "Timestamp": "2017-04-09T10:00:00Z", 
      "Sum": 73.37, 
      "Unit": "None" 
     }, 
     { 
      "Timestamp": "2017-04-09T14:00:00Z", 
      "Sum": 73.37, 
      "Unit": "None" 
     }, 
     { 
      "Timestamp": "2017-04-09T02:00:00Z", 
      "Sum": 70.34, 
      "Unit": "None" 
     }, 
     { 
      "Timestamp": "2017-04-09T18:00:00Z", 
      "Sum": 76.4, 
      "Unit": "None" 
     } 
    ], 
    "Label": "EstimatedCharges" 
} 
+0

不,这不是我所期待的。我已经提到,我知道从S3存储桶中倾倒钞票的成本。我需要一个API,它可以在不下载和处理这些帐单的情况下为我提供帐户及其服务的成本。 – jobin

+0

更新了cli命令以获取指标。希望能帮助到你。 – Kannaiyan

+0

没有,即使在指定货币和关联帐户维度之后,我仍然会在问题中发布空的JSON。 – jobin

相关问题