Поделиться через


Получение небольших наборов данных о затратах по запросу

Используйте API детали стоимости, чтобы получить необработанные данные о затратах, соответствующие счету Azure. API полезен, если вашей организации требуется программное решение для получения данных. Попробуйте использовать API, если вы хотите проанализировать меньшие наборы данных затрат размером 2 ГБ (2 миллиона строк) или меньше. Однако следует использовать экспорт для текущих рабочих нагрузок приема данных и для скачивания больших наборов данных.

Если вы хотите регулярно получать большие объемы экспортированных данных, см. , как получать большие наборы данных по затратам с помощью регулярных экспортов.

Дополнительные сведения о данных о затратах (ранее называвшиеся сведениями об использовании ) см. в данных о затратах на обработку.

Отчет Сведений о затратах доступен только для клиентов, заключивших Соглашение Enterprise или Клиентское соглашение Microsoft. Если вы являетесь клиентом MSDN, с оплатой по мере использования или клиентом Visual Studio, см. детали расходов для подписки с оплатой по мере использования.

Разрешения

Чтобы использовать API сведений о затратах, вам потребуются разрешения только для чтения поддерживаемых функций и областей.

Примечание.

API сведений о затратах не поддерживает группы управления для клиентов EA или MCA.

Дополнительные сведения можно найти здесь

Лучшие практики использования API для деталей затрат

Корпорация Майкрософт рекомендует следующие рекомендации по использованию API сведений о затратах.

Расписание запросов

Если вы хотите получить последние данные о затратах, рекомендуется запрашивать не более одного раза в день. Отчеты обновляются каждые четыре часа. При более частом вызове вы получаете идентичные данные. После скачивания данных о затратах для исторических счетов плата не изменяется, если вам явно не сообщат об этом. Мы рекомендуем кэширование данных о затратах в запрашиваемом хранилище на стороне, чтобы предотвратить повторяющиеся вызовы идентичных данных.

Разделяйте ваши запросы

Разбивайте ваши вызовы на маленькие диапазоны дат, чтобы получить более управляемые файлы, которые можно скачать по сети. Например, мы рекомендуем разбивать по дням или по неделям, если у вас есть большой файл с затратами Azure ежемесячно. Если у вас есть области с большим объемом данных о затратах (например, платежный аккаунт), рассмотрите возможность совершения нескольких вызовов к дочерним областям, чтобы получить более управляемые файлы для загрузки. Дополнительные сведения об областях управления затратами см. в статье Общие сведения и работа с областями. После скачивания данных используйте Excel для дальнейшего анализа данных с фильтрами и сводными таблицами.

Если набор данных составляет более 2 ГБ (или примерно 2 миллиона строк) в месяц, рассмотрите возможность использования экспорта в качестве более масштабируемого решения.

Ограничения задержки и скорости

Запросы к API ограничены по частоте. Время, затраченное на создание файла сведений о затратах, напрямую связано с объемом данных в файле. Чтобы понять ожидаемое время, прежде чем файл станет доступным для скачивания, можно использовать заголовок retry-after в ответе API.

Поддерживаемые диапазоны времени набора данных

API сведений о затратах поддерживает максимальный диапазон времени набора данных в месяц в отчете. Исторические данные можно получить до 13 месяцев до текущей даты. Если вы хотите заполнить 13-месячный исторический набор данных, рекомендуется разместить 13 вызовов за последние 13 месяцев. Чтобы получить исторические данные, которые старше 13 месяцев, используйте REST API экспорта.

Примеры запросов API сведений о затратах

Примеры запросов, приведенные ниже, используются заказчиками Microsoft для решения распространенных сценариев. Данные, возвращаемые запросом, соответствуют дате получения затрат системой выставления счетов. Это может включать затраты из нескольких счетов-фактур. Это асинхронный АПИ. Таким образом, вы совершаете первоначальный запрос для получения отчета и получаете ссылку для опроса в заголовке ответа. Оттуда можно проверять указанную ссылку до тех пор, пока отчет не станет доступен вам.

Используйте заголовок retry-after в ответе API, чтобы определять момент следующего опроса API. Заголовок предоставляет предполагаемое минимальное время создания отчета.

Дополнительные сведения о контракте API см. в разделе Сведения о затратах API.

Фактические затраты и амортизированные затраты

Чтобы определить, хотите ли вы просмотреть фактический отчет о затратах или амортизированных затратах, измените значение, используемое для поля метрик в тексте первоначального запроса. Доступные значения метрик ActualCost или AmortizedCost.

Амортизированная стоимость распределяет затраты на резервации на ежедневные части и распространяет их на весь срок действия резервации. Например, вместо покупки на $365 1 января вы увидите покупку на $1,00 каждый день с 1 января по 31 декабря. Помимо базовой амортизации, затраты также перераспределяются и соотносятся с определенными ресурсами, использовавшимися в процессе резервирования. Например, если плата за 1,00 долл. США была разделена между двумя виртуальными машинами, вы увидите два расхода по 0,50 долл. США в день. Если часть резервирования не была использована в течение дня, вы увидите одну плату в размере 0,50 долл. США, связанную с применимой виртуальной машиной, и еще одну плату в размере 0,50 долл. США с типом оплаты UnusedReservation. Неиспользуемые затраты на резервирование отображаются только при просмотре амортизированных затрат.

Из-за изменения представления затрат важно отметить, что фактические затраты и амортизированные представления затрат показывают разные общие числа. В общем, совокупные затраты за несколько месяцев при покупке резервирования снижаются при расчёте с учетом амортизации. Стоимость покупки резервирования увеличивается в течение нескольких месяцев. Амортизация доступна только для покупок предварительного бронирования и в настоящее время не применяется к покупкам в Azure Marketplace.

Первоначальный запрос на создание отчета

POST https://management.azure.com/{scope}/providers/Microsoft.CostManagement/generateCostDetailsReport?api-version=2022-05-01

Текст запроса:

Ниже приведен пример запроса на набор данных ActualCost для указанного диапазона дат.

{
  "metric": "ActualCost",
  "timePeriod": {
    "start": "2020-03-01",
    "end": "2020-03-15"
  }
}

Доступные параметры {scope} для построения правильного URI документированы в Определение идентификатора ресурса для области.

Ниже приведены доступные поля, которые можно указать в тексте запроса отчета.

  • метрика — тип запрашиваемого отчета. Это может быть "ActualCost" или "AmortizedCost". Необязательно. Если поле не указано, API по умолчанию использует отчет ActualCost.
  • timePeriod — запрошенный диапазон дат для данных. Необязательно. Этот параметр нельзя использовать вместе с параметрами invoiceId или billingPeriod. Если параметр timePeriod, invoiceId или billingPeriod не указан в тексте запроса, API возвращает стоимость текущего месяца.
  • номер счета — запрошенный счет для ваших данных. Этот параметр используется только клиентами клиентского соглашения Майкрософт. Кроме того, его можно использовать только на уровне профиля выставления счетов или клиента. Этот параметр нельзя использовать вместе с параметрами billingPeriod или timePeriod. Если параметр timePeriod, invoiceId или billingPeriod не указан в тексте запроса, API возвращает стоимость текущего месяца.
  • период выставления счетов — запрошенный период для ваших данных. Этот параметр используется только клиентами Соглашения Enterprise. Используйте формат YearMonth. Например, 202008. Этот параметр нельзя использовать вместе с параметрами invoiceId или timePeriod. Если параметр timePeriod, invoiceId или billingPeriod не указан в тексте запроса, API возвращает стоимость текущего месяца.

ответ API :

Response Status: 202 – Accepted. Указывает, что запрос был принят. Используйте заголовок Location для проверки состояния.

Заголовки ответа:

Имя Тип Формат Описание
Местоположение Струна URL-адрес для проверки результата асинхронной операции.
Повторить через Целое число Int32 Ожидаемое время создания отчета. Подождите указанное время перед повторным опросом.

Опрос и скачивание отчетов

Запросите отчет с помощью конечной точки, предоставленной в заголовке location ответа API после того, как вы сделаете запрос на создание детального отчета о затратах. Ниже приведен пример запроса опроса.

Запрос опроса отчета:

GET https://management.azure.com/{scope}/providers/Microsoft.CostManagement/costDetailsOperationStatus/{operationId}?api-version=2022-05-01

Response Status 200 – Succeeded: указывает, что запрос выполнен успешно.

{
  "id": "subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.CostManagement/operationResults/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
  "name": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
  "status": "Completed",
  "manifest": {
    "manifestVersion": "2022-05-01",
    "dataFormat": "Csv",
    "blobCount": 1,
    "byteCount": 160769,
    "compressData": false,
    "requestContext": {
      "requestScope": "subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
      "requestBody": {
        "metric": "ActualCost",
        "timePeriod": {
          "start": "2020-03-01",
          "end": "2020-03-15"
        }
      }
    },
    "blobs": [
      {
        "blobLink": "{downloadLink}",
        "byteCount": 32741
      }
    ]
  },
  "validTill": "2022-05-10T08:08:46.1973252Z"
}

Ниже приведена сводка по ключевым полям в ответе API:

  • manifestVersion — версия манифеста, используемая для ответа. В настоящее время версия манифеста остается одинаковой для данной версии API.
  • dataFormat — CSV-файл является единственным поддерживаемым форматом файлов, предоставляемым API в настоящее время.
  • blobCount — представляет количество отдельных больших двоичных объектов данных, присутствующих в наборе данных отчета. Важно отметить, что этот API может предоставить разделенный набор данных из нескольких файлов в ответе на запрос. Спроектируйте конвейеры данных, чтобы иметь возможность обрабатывать секционированные файлы соответствующим образом. Секционирование позволяет загружать и обрабатывать большие наборы данных быстрее в перспективе.
  • byteCount — общее число байтов набора данных отчета во всех разделах.
  • compressData. Для первого выпуска сжатие всегда устанавливается в значение false. ОДНАКО API будет поддерживать сжатие в будущем.
  • requestContext — начальная конфигурация, запрошенная для отчета.
  • блобы — список из n файлов блобов, которые вместе составляют полный отчет.
    • blobLink — URL-адрес загрузки отдельного BLOB-раздела.
    • byteCount — число байтов отдельного раздела BLOB.
  • validTill — дата, когда отчет больше недоступен.