【问题标题】:How can I get AWS monthly invoice PDF using AWS API?如何使用 AWS API 获取 AWS 月度发票 PDF?
【发布时间】:2019-09-14 21:33:47
【问题描述】:

如何以编程方式下载会计部门每月向我询问的 PDF 月度发票?

我可以从 AWS 控制台获取它们(例如,https://console.aws.amazon.com/billing/home?region=eu-west-3#/bills?year=2019&month=3) 哪里有发票链接。

点击下载发票的那一刻,我可以看到对以下 URL 的 HTTP 请求: https://console.aws.amazon.com/billing/rest/v1.0/bill/invoice/generate?generatenew=true&invoiceGroupId=_SOME_ID_&invoicenumber=_SOME_ID_

然后是对实际提供 PDF 文件的 URL 的最终请求: https://console.aws.amazon.com/billing/rest/v1.0/bill/invoice/download?invoiceGroupId=_SOME_ID_&invoicenumber=_SOME_ID_

我在 AWS API 上找不到用于获取此类发票文档的文档(有一些用于计费报告和其他内容,但没有用于“官方”文档),所以我开始问自己它是否可用?

在抓取 AWS 控制台(通过 ScrapySeleniumPuppeteer)之前,我先询问社区。​​p>

注意:我知道 AWS 可以通过电子邮件发送发票 P​​DF,但我宁愿直接从 AWS 获取它,而不是从 IMAP/POP 电子邮件服务器获取。

【问题讨论】:

  • 简短回答?您目前无法通过 AWS 工具和 API。如果他们会为其发布 API,我会知道并会更新相关答案。
  • @Dvir669 目前没有消息?
  • 他们还没有这个太疯狂了。发票是他们希望您的 CFO 支付的费用……不是传统的详细账单总额,不是您可能制作的 CUR 报告……这是一个笑话,您无法通过 API 获取并每月发送/自动化。

标签: amazon-web-services web-scraping billing


【解决方案1】:

您可以使用 aws cli 或 aws sdk 来获取 json 格式的数据。然后将 json 转换为 pdf(此答案未涵盖)。

AWS 命令​​行

aws cli 提供get-cost-and-usage 命令。通过修改参数,您可以获得与计费发票生成的输出相匹配的输出。

此命令的示例用法:

    aws ce get-cost-and-usage \
        --time-period Start=2019-03-01,End=2019-04-01 \
        --granularity MONTHLY \
        --metrics "BlendedCost" "UnblendedCost" "UsageQuantity" \
        --group-by Type=DIMENSION,Key=SERVICE

产生以下输出

{
  "GroupDefinitions": [
    {
      "Type": "DIMENSION",
      "Key": "SERVICE"
    }
  ],
  "ResultsByTime": [
    {
      "TimePeriod": {
        "Start": "2019-03-01",
        "End": "2019-04-01"
      },
      "Total": {},
      "Groups": [
        {
          "Keys": [
            "AWS Budgets"
          ],
          "Metrics": {
            "BlendedCost": {
              "Amount": "3.0392156805",
              "Unit": "USD"
            },
            "UnblendedCost": {
              "Amount": "3",
              "Unit": "USD"
            },
            "UsageQuantity": {
              "Amount": "155",
              "Unit": "N/A"
            }
          }
        },
        {
          "Keys": [
            "AWS CloudTrail"
          ],
          "Metrics": {
            "BlendedCost": {
              "Amount": "0",
              "Unit": "USD"
            },
            "UnblendedCost": {
              "Amount": "0",
              "Unit": "USD"
            },
            "UsageQuantity": {
              "Amount": "720042",
              "Unit": "N/A"
            }
          }
        },
...

AWS 开发工具包

您还可以通过编程方式获取相同类型的数据。最简单的方法是使用 aws sdk。请参阅您要使用的 sdk 的文档。可以在here找到有关此功能的python sdk的示例信息。

【讨论】:

  • 成本和使用报告不反映账单发票(例如信用/货币),到目前为止我没有发现任何通过 API 检索账单的可能性
  • @burna 是的,当时的解决方案对我有用,因为我没有积分,货币是 $,所以它与我的发票相符。不幸的是,aws 仍然没有提供通过 api 获取账单的最佳方式,所以这个答案仍然很糟糕,但我能提供的最好的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多