Amazon web services 每次使用Boto3获取具有唯一筛选器的ec2实例的成本和使用率

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,

用例-根据标记值获取EC2实例的成本。 我们有两个强制执行的标签(所有者和应用程序),需要根据这些标签获取EC2实例的成本。 我们希望它在一个CSV格式的文件,将得到上传到S3每个月

预期产量-

现在我正在使用下面的代码。我将获取所有所有者标记值,并请求每个所有者产生的成本,并按应用程序对它们进行分组

    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):表达式有多个根。每个表达式只允许一个根运算符:和或不是维度、标记、成本类别”

另外,我在想,在未来,循环请求可能不是一个好主意。是否有更好的方法/途径可以获得所需的输出