AWS get-cost-and-usage by resource 标签
AWS get-cost-and-usage by resource Tags
我正在尝试按环境或使用情况获取我的 aws 资源的成本。
我设置了我的环境,以便所有资源(rds 实例、vpc 端点、ecs 集群和任务等)都有一个标签 Environment: test
或 Environment: prod
.
现在我想探索使用 aws cli 的成本:
aws ce get-cost-and-usage --time-period Start=2022-03-01,End=2022-04-09 --granularity MONTHLY --metrics "BlendedCost" "UnblendedCost" "UsageQuantity" --filter file://costfilter.json
与“costfilter.json”:
{
"And": [
{
"Dimensions": {
"Key": "REGION",
"Values": ["us-east-2, eu-central-1"]
}
},
{
"Tags": {
"Key": "Environment",
"Values": ["test"]
}
}
]
}
我没有发现任何错误,所以语法上没问题,但它显示
DimensionValueAttributes: []
ResultsByTime:
- Estimated: false
Groups: []
TimePeriod:
End: '2022-04-01'
Start: '2022-03-01'
Total:
BlendedCost:
Amount: '0'
Unit: USD
UnblendedCost:
Amount: '0'
Unit: USD
UsageQuantity:
Amount: '0'
Unit: N/A
- Estimated: true
Groups: []
TimePeriod:
End: '2022-04-09'
Start: '2022-04-01'
Total:
BlendedCost:
Amount: '0'
Unit: USD
UnblendedCost:
Amount: '0'
Unit: USD
UsageQuantity:
Amount: '0'
Unit: N/A
可惜事实并非全为0,所以这里出问题了
这是实现我想要的目标的正确方法吗?如果是这样,缺少什么?如果没有,我该如何处理?
ps。例如 alb elbv2 describe-tags
对于某个 lb 会给我:
TagDescriptions:
- ResourceArn: arn:aws:elasticloadbalancing:eu-central-1:640753244498:loadbalancer/app/mosar-lb-test/3d7bd13953ee06b8
Tags:
- Key: Environment
Value: test
- Key: ManagedBy
Value: ecs-cluster
所以标签确实存在。
你确实把你维度内的区域发错了:
"Values": ["us-east-2, eu-central-1"]
应该是
"Values": ["us-east-2", "eu-central-1"]
另请注意,由于 AWS 本身的计算,“当前”日期通常为 0。这就是为什么我们在我们的成本监控工具中要求从过去的某个日期到“昨天”的所有成本,以确保获得当天的全部成本。
要按标签过滤,您还可以将这些标签作为“成本分配标签”,参见https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html
我正在尝试按环境或使用情况获取我的 aws 资源的成本。
我设置了我的环境,以便所有资源(rds 实例、vpc 端点、ecs 集群和任务等)都有一个标签 Environment: test
或 Environment: prod
.
现在我想探索使用 aws cli 的成本:
aws ce get-cost-and-usage --time-period Start=2022-03-01,End=2022-04-09 --granularity MONTHLY --metrics "BlendedCost" "UnblendedCost" "UsageQuantity" --filter file://costfilter.json
与“costfilter.json”:
{
"And": [
{
"Dimensions": {
"Key": "REGION",
"Values": ["us-east-2, eu-central-1"]
}
},
{
"Tags": {
"Key": "Environment",
"Values": ["test"]
}
}
]
}
我没有发现任何错误,所以语法上没问题,但它显示
DimensionValueAttributes: []
ResultsByTime:
- Estimated: false
Groups: []
TimePeriod:
End: '2022-04-01'
Start: '2022-03-01'
Total:
BlendedCost:
Amount: '0'
Unit: USD
UnblendedCost:
Amount: '0'
Unit: USD
UsageQuantity:
Amount: '0'
Unit: N/A
- Estimated: true
Groups: []
TimePeriod:
End: '2022-04-09'
Start: '2022-04-01'
Total:
BlendedCost:
Amount: '0'
Unit: USD
UnblendedCost:
Amount: '0'
Unit: USD
UsageQuantity:
Amount: '0'
Unit: N/A
可惜事实并非全为0,所以这里出问题了
这是实现我想要的目标的正确方法吗?如果是这样,缺少什么?如果没有,我该如何处理?
ps。例如 alb elbv2 describe-tags
对于某个 lb 会给我:
TagDescriptions:
- ResourceArn: arn:aws:elasticloadbalancing:eu-central-1:640753244498:loadbalancer/app/mosar-lb-test/3d7bd13953ee06b8
Tags:
- Key: Environment
Value: test
- Key: ManagedBy
Value: ecs-cluster
所以标签确实存在。
你确实把你维度内的区域发错了:
"Values": ["us-east-2, eu-central-1"]
应该是
"Values": ["us-east-2", "eu-central-1"]
另请注意,由于 AWS 本身的计算,“当前”日期通常为 0。这就是为什么我们在我们的成本监控工具中要求从过去的某个日期到“昨天”的所有成本,以确保获得当天的全部成本。
要按标签过滤,您还可以将这些标签作为“成本分配标签”,参见https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html