【问题标题】:aws billing information using aws java sdk使用 aws java sdk 的 aws 计费信息
【发布时间】:2014-11-26 19:10:18
【问题描述】:

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

【问题讨论】:

    标签: amazon-web-services amazon-ec2 aws-sdk


    【解决方案1】:

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

    1. 打开详细的结算报告(从仪表板)
    2. 配置您想要的结算报告类型
    3. AWS 将开始每小时数次将账单信息以 CSV 文件的形式推送到(预)配置的存储桶中
    4. 在需要时使用 REST API 或 S3 Java API 从存储桶中获取信息。

    欲了解更多信息:See here

    【讨论】:

    • 我实际上正在寻找任何可以让我使用定价的 API。是否有任何 aws api 可以让我使用 EC2 实例、EBS 卷和 S3 存储?
    • 在 Java SDK 中尝试 getCostAndUsage:docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/index.html (com.amazonaws.services.costexplorer.AWSCostExplorerClient)
    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

      更新答案,因为它不再是正确的答案。 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 中的组织有权访问所有成员账户。

      【讨论】:

        【解决方案4】:

        您可以使用 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();
            }
        }
        

        【讨论】:

          【解决方案5】:

          @bagui

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

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

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

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

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

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

          参考的 AWS 文档: Programmatic Access to AWS Billing Data

          谢谢

          【讨论】:

            猜你喜欢
            • 2020-09-15
            • 2020-03-23
            • 2016-06-22
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-05-20
            • 2017-11-26
            • 2018-02-22
            相关资源
            最近更新 更多