有什么方法可以通过标签获取AWS资源的使用情况?

时间:2020-07-16 17:52:49

标签: amazon-web-services amazon-ec2

作为SaaS产品的一部分,我正在为客户在AWS中创建资源(主要是EC2,EBS磁盘和S3空间)。我希望能够获得这些资源的使用情况,以便能够将该使用情况发送给Stripe以便向我的用户收费和开具发票。

我一直认为标记是对特定客户的资源进行分组的一种好方法,因此,如果将这个标记放在其所有资源中,"Customer" => "cust_id_4894168127",那么我可以在伪代码API调用中做到这一点:

https://www.aws_api_url.com/api/getResourceUsage?Tag=Customer/cust_id_4894168127&From=2020/02/02%To=2020/03/03

API会返回类似的内容

{
  [
    "ResourceID": "8hf8972g8h9",
    "ResourceType": "EC2",
    "UsageHours": 231,
  ],
  [
    "ResourceID": "09j05h05hj",
    "ResourceType": "EBS disk",
    "DiskSpaceUsedGB": 200,
  ],
  [
    "ResourceID": "h87f3go2f2",
    "ResourceType": "S3 space",
    "SpaceUsedGB": 500,
  ],
}

我想获得亚马逊要向我收取的所有费用,以便向客户收取所有这些费用。如果找不到解决方法,则必须将所有用户操作存储在数据库中,然后计算EC2的运行时间,等等。

您知道使用SDK API的方法吗?

1 个答案:

答案 0 :(得分:0)

您可以将get-resources函数与标记过滤器一起使用,以获取所有资源。

下面是一个例子

aws resourcegroupstaggingapi get-resources --tag-filters Key=Customer,Values=cust_id_4894168127

这将返回所有资源的Arns以及附加的任何标签,您需要从此处调用该服务的API以获得所需的元数据。

要进行计费,您可以使用cost allocation tags来确定特定客户的费用。

相关问题