10

我正在尝试使用 java api 从 aws 获取 ec2 实例、s3 存储桶和 ebs 卷的计费信息。我想创建提供特定实体明智的每小时计费报告的 api。有没有相同的java api?我在 aws java sdk api 文档中找不到相同的内容。

4

5 回答 5

12

没有用于获取 AWS 账单信息的 API。相反,您可以做的是:

  1. 打开详细的计费报告(从仪表板)
  2. 配置您想要什么样的计费报告
  3. AWS 将开始每小时数次将账单信息作为 CSV 文件推送到(预)配置的存储桶
  4. 需要时使用 REST API 或 S3 Java API 从存储桶中获取信息。

欲了解更多信息:请参阅此处

于 2014-11-26T23:00:26.377 回答
4

更新答案,因为它不再是正确的答案。AWS 已发布适用于 Java 开发工具包的 CostExplorer API。您可以在此处找到文档:https ://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/index.html

public GetCostAndUsageResult getCostAndUsage(GetCostAndUsageRequest request) 

检索您帐户的成本和使用指标。您可以指定希望请求返回的成本和使用相关指标,例如 BlendedCosts 或 UsageQuantity。您还可以在特定时间范围内按不同维度(例如 SERVICE 或 AZ)对数据进行过滤和分组。有关有效维度的完整列表,请参阅 GetDimensionValues 操作。AWS Organizations 中组织中的主账户可以访问所有成员账户。

于 2018-04-04T21:31:55.600 回答
4

除了@helloV 回答之外,如果您想查看您的 AWS 账单日/小时甚至数分钟。您可以使用aws-elk-billing工具。目前拉取请求正在等待与主存储库合并。它使用 ELK Stack 可视化 AWS 成本和使用情况报告

(尽管它可能仍适用于 AWS 详细账单报告,其中包含一些额外的列以及 AWS 成本和使用报告中的所有列)。

这是 Kibana 仪表板的完整屏幕截图。

AWS 计费 Kibana 仪表板

于 2016-06-02T07:46:58.517 回答
2

您可以使用 AWS Java 开发工具包获取成本和使用数据。这是一个功能示例。

import com.amazonaws.auth.AWSStaticCredentialsProvider;

import com.amazonaws.auth.profile.ProfileCredentialsProvider;

import com.amazonaws.regions.Regions;

import com.amazonaws.services.costexplorer.AWSCostExplorer;

import com.amazonaws.services.costexplorer.AWSCostExplorerClientBuilder;

import com.amazonaws.services.costexplorer.model.DateInterval;

import com.amazonaws.services.costexplorer.model.GetCostAndUsageRequest;

import com.amazonaws.services.costexplorer.model.GetCostAndUsageResult;

public class AwsCostExplorer {

    private static AWSCostExplorer awsCostExplorerClient;

    public static void main(String arg[]){

AWSCostExplorerClientBuilder builder =AWSCostExplorerClientBuilder.standard();

        awsCostExplorerClient = builder.withCredentials(new AWSStaticCredentialsProvider(new ProfileCredentialsProvider("profile-name").getCredentials()))
                .withRegion(Regions.US_EAST_1).build();

        GetCostAndUsageRequest request = new GetCostAndUsageRequest()
                .withTimePeriod(new DateInterval().withStart("2018-07-01").withEnd("2018-07-25"))
                .withGranularity("DAILY")
                .withMetrics("BlendedCost");

        GetCostAndUsageResult result = awsCostExplorerClient.getCostAndUsage(request);

        result.getResultsByTime().forEach(resultByTime -> {
            System.out.println(resultByTime.toString());
        });

        awsCostExplorerClient.shutdown();
    }
}
于 2018-07-27T06:23:08.590 回答
1

@bagui

根据 AWS 官方文档,没有可用于获取实际账单使用数据的 API 功能。相反,您可以获得预期的计费数据:

要开始,您需要做的就是为您的账单数据提供一个 Amazon S3 存储桶,授予 AWS 账单系统写入它的权限,然后访问账单首选项页面以启用编程访问:

完成此操作后,我们将每天多次生成估算账单并将其存储在存储桶中,您可以在其中根据需要下载和处理它。我们还将在每个计费期结束时生成最终账单。

计费报告以 CSV 文件的形式生成,并包含大量详细信息:

以下是字段列表(请阅读文档以获取更多信息):

  • 发票编号
  • 付款人帐户名称和 ID
  • 关联帐户名称和 ID(用于合并帐单)
  • 记录类型
  • 记录编号
  • 计费周期开始和结束日期
  • 发票日期
  • 税务地址
  • 付款人采购订单号
  • 产品代码
  • 产品名称
  • 记录卖方
  • 使用类型
  • 手术
  • 费率 ID
  • 商品描述
  • 使用开始和使用结束日期和时间
  • 使用量
  • 混合费率(用于合并计费)
  • 货币代码
  • 税前成本
  • 学分
  • 税额
  • 税种
  • 总消耗

参考的 AWS 文档: 以编程方式访问 AWS 账单数据

谢谢

于 2015-05-31T03:35:40.533 回答