我知道,为了获得AWS账户的详细成本,我需要启用程序化计费访问,并将计费报告推送到相应AWS账户中的S3存储桶。
这种方法对我来说很好。但是,问题是要下载和处理的账单大小很大,只能获得过去几个月所有链接的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:我可以使用上述API获取整体AWS账户成本(主要账户成本+关联账户成本),只需调整维度,但仍然无法获得个人帐户/服务费用(主帐户和关联帐户的个人费用)。
更新2 :当我使用我需要的费用的帐户中的IAM用户时,我可以获得关联的帐户费用。但是,LinkedAccount
维度仍无效:当我使用主帐户的IAM用户使用LinkedAccount
维度获取其关联帐户的费用时,仍会返回空结果。我的期望是,因为我可以获得关联帐户&#39;主账户账单中的成本,我可以看到关联账户&#39;当我登录AWS门户网站时,我应该可以获得关联的帐户&#39;使用CloudWatch API的成本。仍然试图获得一个解决方案来获取关联帐户&#39;使用CW API使用主帐户的IAM用户的费用。
答案 0 :(得分:0)
在结算首选项下,您可以启用程序化访问权限,
https://aws.amazon.com/blogs/aws/new-programmatic-access-to-aws-billing-data/
结算 - &gt; S3(触发器)CSV文件 - &gt; Lambda - &gt; S3(Billing for 具体账户)
您可以获取lambda警报并处理所有链接帐户的生成的csv文件。
希望它有所帮助。
<强> EDIT1:强>
如果您想对这些费用进行民意调查,
aws cloudwatch get-metric-statistics --metric-name EstimatedCharges --start-time 2017-04-08T23:18:00 --end-time 2017-04-09T23:18:00--period 3600 --namespace AWS / Billing --statistics Sum --dimensions Name = LinkedAccount,Value = accountid --dimensions 名称=货币,值= 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"
}