没有获得与分配标签相关的特定费用

时间:2019-02-04 06:09:33

标签: python amazon-web-services aws-sdk aws-billing

我正在构建一个python仪表板,以便我拥有托管在AWS上的应用程序的客户可以付给我确切的项目费用。我正在使用python sdk,但我只能从查询中获得帐户的总金额。

我已经确定将标签添加到项目中(例如:Elastic beantalk)并激活了成本分配标签,但是没有用。

cost_allocation_tag = 'Company'

client = boto3.client(
    'ce',
    aws_access_key_id=aws_access_key_id,
    aws_secret_access_key=aws_secret_access_key,
)

try:
    monthly = client.get_cost_and_usage(
            TimePeriod={
                'Start':end,
                'End':now.strftime('%Y-%m-%d')
            },
            Granularity='MONTHLY',
            Metrics=[
            'BlendedCost',
            ],
            GroupBy=[
            {
                'Type': 'TAG',
                'Key': cost_allocation_tag
            },
            ]
        )
    monthly_cost = monthly['ResultsByTime'][0]['Groups'][0]['Metrics']['BlendedCost']['Amount']
except:
    pass

我应该只获得与代码相关的成本,而不是总体成本。我已经阅读了文档,但是如果我没有正确遵循的话,我的理解还不是100%。这是文档的链接

https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ce.html#CostExplorer.Client.get_cost_and_usage

1 个答案:

答案 0 :(得分:1)

您要按'TAGS'类型而不是'TAG'进行分组,因为这不是有效的类型。

此外,请检查是否在资源上为给定标签键设置了公司的标签值。
如果不是这样,返回的组将包括所有公司的资源。