Как получить AWS ежемесячный счет-фактуру PDF с помощью AWS API? - PullRequest
2 голосов
/ 25 апреля 2019

Можно ли программно загружать ежемесячные счета в формате PDF, которые бухгалтерия спрашивает меня каждый месяц?

Я могу получить их из Консоли AWS (например, https://console.aws.amazon.com/billing/home?region=eu-west-3#/bills?year=2019&month=3) Там, где есть ссылка на счет.

В тот момент, когда я нажимаю, чтобы загрузить счет, я вижу запросы HTTP по следующему URL: https://console.aws.amazon.com/billing/rest/v1.0/bill/invoice/generate?generatenew=true&invoiceGroupId=_SOME_ID_&invoicenumber=_SOME_ID_

Затем окончательный запрос к URL, который фактически обслуживает файл PDF: https://console.aws.amazon.com/billing/rest/v1.0/bill/invoice/download?invoiceGroupId=_SOME_ID_&invoicenumber=_SOME_ID_

Я не могу найти документацию по API AWS для получения такого документа счета-фактуры (есть некоторые для отчетов о выставлении счетов и прочего, но нет для «официального» документа), поэтому я начинаю спрашивать себя, доступен ли он вообще?

Прежде чем отправиться на слом Консоли AWS (через Scrapy , Селен , Кукольник ) Я прошу сообщество;)

Примечание: я знаю, что AWS может отправлять PDF-файл счета-фактуры по электронной почте, но я предпочитаю получать его непосредственно из AWS, а не из почтового сервера IMAP / POP.

1 Ответ

0 голосов
/ 25 апреля 2019

Вы можете использовать aws cli или aws sdk для получения данных в формате json.А затем преобразуйте json в pdf (в этом ответе не рассматривается).

AWS cli

aws cli предоставляет команду get-cost-and-using .Обращаясь с параметрами, вы можете получить выходные данные, которые совпадают с теми, которые получены при выставлении счета-фактуры.

Пример использования этой команды:

    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 SDK

Вы также можете получить такой же тип данных программным способом.Самый простой способ сделать это - использовать aws sdk.Обратитесь к документации SDK, который вы хотите использовать.Например, информацию об этой функциональности для Python SDK можно найти здесь .

...