Amazon web services 每次使用Boto3获取具有唯一筛选器的ec2实例的成本和使用率
用例-根据标记值获取EC2实例的成本。 我们有两个强制执行的标签(所有者和应用程序),需要根据这些标签获取EC2实例的成本。 我们希望它在一个CSV格式的文件,将得到上传到S3每个月 预期产量- 现在我正在使用下面的代码。我将获取所有所有者标记值,并请求每个所有者产生的成本,并按应用程序对它们进行分组Amazon web services 每次使用Boto3获取具有唯一筛选器的ec2实例的成本和使用率,amazon-web-services,amazon-ec2,aws-lambda,boto3,cost-management,Amazon Web Services,Amazon Ec2,Aws Lambda,Boto3,Cost Management,用例-根据标记值获取EC2实例的成本。 我们有两个强制执行的标签(所有者和应用程序),需要根据这些标签获取EC2实例的成本。 我们希望它在一个CSV格式的文件,将得到上传到S3每个月 预期产量- 现在我正在使用下面的代码。我将获取所有所有者标记值,并请求每个所有者产生的成本,并按应用程序对它们进行分组 tags_response = ce_client.get_tags( TimePeriod={ 'Start': start,
tags_response = ce_client.get_tags(
TimePeriod={
'Start': start,
'End': end
},
TagKey='owner'
)
for i in tags_response["Tags"]:
response = ce_client.get_cost_and_usage(
TimePeriod={
'Start': start,
'End': end
},
Filter={
'Dimensions': {
'Key': 'SERVICE',
'Values': [
'Amazon Elastic Compute Cloud - Compute'
],
},
'Tags': {
'Key': 'owner',
'Values': [
i,
],
}
},
Granularity='MONTHLY',
Metrics=["UnblendedCost"],
GroupBy=[{
'Type': 'TAG',
'Key': 'Application'
}]
)
但是Lambda抛出了以下错误-
“调用GetCostAndUsage操作时发生错误(ValidationException):表达式有多个根。每个表达式只允许一个根运算符:和或不是维度、标记、成本类别”
另外,我在想,在未来,循环请求可能不是一个好主意。是否有更好的方法/途径可以获得所需的输出