【发布时间】:2018-09-23 16:26:35
【问题描述】:
我正在尝试通过 Java SDK 生成 AWS 成本和使用情况报告。下面是我的代码块。
credentials = new ProfileCredentialsProvider("default").getCredentials();
AWSCostAndUsageReportClientBuilder reportBuilder = AWSCostAndUsageReportClientBuilder.standard();
AWSCostAndUsageReportClient costAndUsageReport = (AWSCostAndUsageReportClient) reportBuilder
.withCredentials(new AWSStaticCredentialsProvider(credentials))
.withRegion("us-east-1")
.build();
ReportDefinition reptDefinition = new ReportDefinition();
reptDefinition.setReportName("ChandraReport123");
reptDefinition.setTimeUnit("DAILY");
reptDefinition.setCompression("ZIP");
ArrayList addidtionSchemaElements = new ArrayList();
addidtionSchemaElements.add("RESOURCES");
reptDefinition.setAdditionalSchemaElements(addidtionSchemaElements);
reptDefinition.setS3Bucket("etho-onnu22");
reptDefinition.setS3Prefix("someprefix");
reptDefinition.setS3Region("us-east-1");
reptDefinition.setFormat("textORcsv");
request.setReportDefinition(reptDefinition);
PutReportDefinitionResult reportResult = costAndUsageReport.putReportDefinition(request);
执行代码时遇到异常 -
线程“main”中的异常 com.amazonaws.services.costandusagereport.model.ValidationException: 未能验证客户存储桶权限。 accountId= xxxxxxx72184, 存储桶名称:etho-onnu22,存储桶区域:us-east-1(服务: AWSCostAndUsageReport;状态码:400;错误代码: 验证异常;请求 ID: xxxxxxx) 在 com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleErrorResponse(AmazonHttpClient.java:1630) 在 com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1302) 在 com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1056) 在 com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:743) 在 com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:717) 在 com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:699) 在 com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$500(AmazonHttpClient.java:667) 在 com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:649) 在 com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:513)
我能够通过 s3 api 将对象上传到同一个 s3 文件夹。非常感谢任何帮助或指针。谢谢
【问题讨论】:
-
发布您如何上传到 s3 存储桶的完整命令。另外,您在运行上述代码时是否检查了该区域?
-
AWS costAndUSageReport api 将生成报告并将其上传到指定的 s3 存储桶。
标签: amazon-web-services amazon-s3 sdk cloud