Автоматизация управления затратами

С помощью автоматизации Управления затратами Azure можно создавать пользовательские наборы решений для получения данных о затратах и управления ими. В этой статье описаны распространенные сценарии автоматизации Управления затратами и параметры, доступные в зависимости от конкретной ситуации. Если вы хотите разрабатывать интерфейсы API, ознакомьтесь с представленными примерами общих запросов API, которые помогут ускорить процесс разработки.

Автоматизация получения данных о затратах для автономного анализа

Вам может потребоваться скачать данные о затратах Azure, чтобы объединить их с другими наборами данных. Вы также можете захотеть интегрировать данные о затратах в собственные системы. Существуют разные варианты сделать это, в зависимости от объема интересующих вас данных. В любом случае для использования API и инструментов вам необходимы разрешения Управления затратами в соответствующей области. Дополнительные сведения см. в разделе Назначение доступа к данным.

Рекомендации по обработке больших наборов данных

Если у вашей организации есть большое присутствие Azure во многих ресурсах или подписках, у вас будет большое количество результатов данных об использовании. Excel часто не может загружать такие большие файлы. В этом случае мы рекомендуем следующие варианты.

Power BI

Power BI используется для приема и обработки больших объемов данных. Если вы являетесь клиентом Соглашения Enterprise, то можете использовать приложение-шаблон Power BI для анализа затрат согласно выставленным счетам. Этот отчет содержит основные представления, используемые клиентами. Дополнительные сведения см. в разделе Анализ затрат на Azure с помощью приложения-шаблона Power BI.

Соединитель данных Power BI

Если вы хотите анализировать данные ежедневно, мы рекомендуем использовать соединитель данных Power BI, чтобы получать данные для подробного анализа. Все созданные вами отчеты будут поддерживаться соединителем в актуальном состоянии по мере начисления затрат.

Функция экспорта в Управлении затратами

Возможно, вам не требуется анализировать данные ежедневно. В этом случае подумайте об использовании функции экспорта в службе "Управление затратами" для планирования экспорта данных в учетную запись хранения Azure. Затем можно загружать данные в Power BI по мере необходимости или анализировать их в Excel, если размер файла это позволяет. Функция экспорта доступна на портале Azure. Вы также можете настроить экспорт с помощью API экспорта.

API сведений о потреблении

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

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

Автоматизация получения с помощью API сведений о потреблении

API сведений о потреблении — это простой способ получения необработанных и неагрегированных данных о затратах, соответствующих счету за использование Azure. Этот API полезен, если вашей организации требуется программное решение для получения данных. Если вы хотите анализировать небольшие наборы данных о затратах, рассмотрите возможность использования этого API. Однако при наличии больших наборов данных следует использовать другие решения, указанные ранее. Данные в сведениях о потреблении предоставляются в единицах измерения в день. Они используются при выставлении ежемесячного счета. Общедоступная версия этих API — 2019-10-01. Используйте 2019-04-01-preview, чтобы получить доступ к предварительной версии для резервирования и приобретения в Azure Marketplace с помощью этих API.

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

Предложения API сведений о потреблении

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

Рекомендуется делать не более одного запроса в API сведений о потреблении в день. Дополнительные сведения о частоте обновления данных о затратах и обработке округления см. в разделе Обзор данных службы "Управление затратами".

Целевые области верхнего уровня без фильтрации

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

Примечания о ценах

Если вы хотите примирить использование и расходы с ценовой таблицей или счетом, ознакомьтесь с сведениями о ценах.

У одного ресурса может быть несколько записей за один день

Поставщики ресурсов Azure передают сведения об использовании и начисления в систему выставления счетов и заполняют поле Additional Info записей об использовании. Иногда поставщики ресурсов могут отправлять данные об использовании за конкретный день и отмечать записи с различными центрами обработки данных в поле Additional Info записей об использовании. В результате в файле с данными об использовании за один день может быть несколько записей для счетчика или ресурса. В этом случае вы не несете лишние расходы. Несколько записей представляют полные затраты по этому счетчику для ресурса в этот день.

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

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

Получение сведений о потреблении для области в определенном диапазоне дат

Данные, возвращаемые запросом, соответствуют дате получения сведений о потреблении системой выставления счетов. Могут быть включены затраты из нескольких счетов. Используемый вызов зависит от типа подписки.

Для пользователей с устаревшим типом подписки с Соглашением Enterprise (EA) или оплатой по мере использования используйте следующий вызов:

GET https://management.azure.com/{scope}/providers/Microsoft.Consumption/usageDetails?$filter=properties%2FusageStart%20ge%20'2020-02-01'%20and%20properties%2FusageEnd%20le%20'2020-02-29'&$top=1000&api-version=2019-10-01

Для пользователей с современным типом подписки с Клиентским соглашением Майкрософт используйте следующий вызов:

GET https://management.azure.com/{scope}/providers/Microsoft.Consumption/usageDetails?startDate=2020-08-01&endDate=2020-08-05&$top=1000&api-version=2019-10-01

Примечание.

Параметр $filter не поддерживается Клиентскими соглашениями Майкрософт.

Получение сведений об амортизационной стоимости

Если вы хотите увидеть фактические затраты на покупки по мере их возникновения, в следующем запросе измените значение metric на ActualCost. Для получения сведений об амортизационной стоимости и фактических затратах необходимо использовать версию 2019-04-01-preview. Текущая версия API работает так же, как версия 2019-10-01, кроме нового атрибута type/metric и измененных имен свойств. Если у вас имеется Клиентское соглашение Майкрософт, в следующем примере ваши фильтры будут startDate и endDate.

GET https://management.azure.com/{scope}/providers/Microsoft.Consumption/usageDetails?metric=AmortizedCost&$filter=properties/usageStart+ge+'2019-04-01'+AND+properties/usageEnd+le+'2019-04-30'&api-version=2019-04-01-preview

Автоматизация оповещений и действий с бюджетами

Для повышения окупаемости инвестиций в облако требуется два критически важных компонента. Один — автоматическое создание бюджета. Другой — настройка оркестрации на основе затрат в ответ на оповещения для бюджета. Существует несколько способов автоматизации создания бюджета. При превышении настроенных пороговых значений для оповещений в ответ на предупреждения происходят различные события.

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

Оценка затрат по порогу бюджета

Затраты оцениваются по порогу бюджета один раз в день. При создании бюджета или в день его сброса затраты, сравниваемые с пороговым значением, обнуляются (принимают значение 0 или NULL), так как вычисление, возможно, не выполнялось.

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

Просмотр текущих затрат

Чтобы просмотреть текущие затраты, необходимо выполнить вызов GET с помощью API запросов.

Вызов GET в API бюджетов не будет возвращать текущие затраты, указанные в анализе затрат. Вместо этого он возвращает последние вычисленные затраты.

Автоматизация создания бюджета

Вы можете автоматизировать создание бюджета с помощью API бюджетов. Вы также можете создать бюджет с помощью шаблона бюджета. Шаблоны позволяют с легкостью стандартизировать развертывания Azure, обеспечивая правильную настройку и принудительное применение управления затратами.

Поддерживаемые языковые стандарты для сообщений электронной почты с оповещениями о бюджете

При использовании бюджетов вы получите оповещение, если затраты превышают пороговое значение. Для каждого бюджета можно настроить до пяти получателей сообщений электронной почты. Получателям отправляется оповещение по электронной почте в течение 24 часов с момента превышения порогового значения. При этом получателю может потребоваться получить сообщение электронной почты на другом языке. С помощью API бюджетов можно использовать следующие коды языка и региональных параметров. Задайте код языка и региональных параметров с помощью параметра locale, как показано в следующем примере.

{
  "eTag": "\"1d681a8fc67f77a\"",
  "properties": {
    "timePeriod": {
      "startDate": "2020-07-24T00:00:00Z",
      "endDate": "2022-07-23T00:00:00Z"
    },
    "timeGrain": "BillingMonth",
    "amount": 1,
    "currentSpend": {
      "amount": 0,
      "unit": "USD"
    },
    "category": "Cost",
    "notifications": {
      "actual_GreaterThan_10_Percent": {
        "enabled": true,
        "operator": "GreaterThan",
        "threshold": 20,
        "locale": "en-us",
        "contactEmails": [
          "user@contoso.com"
        ],
        "contactRoles": [],
        "contactGroups": [],
        "thresholdType": "Actual"
      }
    }
  }
}

Языки, поддерживаемые кодом языка и региональных параметров:

Код культуры Язык
en-us Английский (США)
ja-jp Японский (Япония)
zh-cn Китайский (упрощенное письмо, Китай)
de-de Немецкий (Германия)
es-es Испанский (Испания, международный)
fr-fr Французский (Франция)
it-it Итальянский (Италия)
ko-kr корейский (Корея)
pt-br Португальский (Бразилия)
ru-ru Русский (Россия)
zh-tw Китайский (традиционный, Тайвань)
cs-cz Чешский (Чешская Республика)
pl-pl Польский (Польша)
tr-tr Турецкий (Турция)
da-dk Датский (Дания)
en-gb Английский (Великобритания)
hu-hu Венгерский (Венгрия)
nb-no Норвежский (букмол, Норвегия)
nl-nl Нидерландский (Нидерланды)
pt-pt португальский (Португалия)
sv-se шведский (Швеция)

Общие конфигурации API бюджетов

Бюджеты в среде Azure можно настроить множеством способов. Сначала проанализируйте свой сценарий, а затем определите параметры конфигурации, которые позволят его реализовать. Проверьте перечисленные ниже параметры.

  • Интервал времени. Представляет период повторения, используемый бюджетом для начисления и вычисления затрат. Наиболее распространенные варианты — ежемесячно, ежеквартально и ежегодно.
  • Период времени. Указывает срок действия бюджета. Отслеживание бюджета и оповещение о связанных с ним событиях активны только пока он остается действительным.
  • Уведомления
    • Контактные адреса электронной почты — это те адреса, на которые поступают оповещения при начислении затрат и превышении заданных пороговых значений для бюджета.
    • Роли контактов — при выборе этого параметра, все пользователи, имеющие соответствующую роль в Azure для заданной области, получают оповещения по электронной почте. Например, владельцы подписки могут получать оповещение для бюджета, созданного в области действия подписки.
    • Группы контактов — при превышении порога оповещения бюджет вызывает настроенные группы действий.
  • Фильтры измерения затрат — для бюджета можно выполнить ту же фильтрацию, которая выполняется при анализе затрат или использовании API запросов. Используйте этот фильтр, чтобы сократить диапазон затрат, мониторинг которых осуществляется с помощью бюджета.

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

Создание бюджета, отфильтрованного по нескольким ресурсам и тегам

URL-адрес запроса: PUT https://management.azure.com/subscriptions/{SubscriptionId} /providers/Microsoft.Consumption/budgets/{BudgetName}/?api-version=2019-10-01

{
  "eTag": "\"1d34d016a593709\"",
  "properties": {
    "category": "Cost",
    "amount": 100.65,
    "timeGrain": "Monthly",
    "timePeriod": {
      "startDate": "2017-10-01T00:00:00Z",
      "endDate": "2018-10-31T00:00:00Z"
    },
    "filter": {
      "and": [
        {
          "dimensions": {
            "name": "ResourceId",
            "operator": "In",
            "values": [
              "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{meterName}",
              "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{meterName}"
            ]
          }
        },
        {
          "tags": {
            "name": "category",
            "operator": "In",
            "values": [
              "Dev",
              "Prod"
            ]
          }
        },
        {
          "tags": {
            "name": "department",
            "operator": "In",
            "values": [
              "engineering",
              "sales"
            ]
          }
        }
      ]
    },
    "notifications": {
      "Actual_GreaterThan_80_Percent": {
        "enabled": true,
        "operator": "GreaterThan",
        "threshold": 80,
        "contactEmails": [
          "user1@contoso.com",
          "user2@contoso.com"
        ],
        "contactRoles": [
          "Contributor",
          "Reader"
        ],
        "contactGroups": [
          "/subscriptions/{subscriptionID}/resourceGroups/{resourceGroupName}/providers/microsoft.insights/actionGroups/{actionGroupName}
        ],
        "thresholdType": "Actual"
      }
    }
  }
}

Настройка оркестрации на основе затрат для оповещений бюджета

С помощью групп действий Azure можно настроить для бюджетов запуск автоматических действий. Дополнительные сведения об автоматизации действий с помощью бюджетов см. в статье автоматизации с помощью бюджетов.

Задержка данных и ограничения скорости

Рекомендуется вызывать интерфейсы API не чаще одного раза в день. Данные Управления затратами обновляются каждые четыре часа по мере получения новых данных о потреблении от поставщиков ресурсов Azure. При более частых вызовах вы не получите дополнительные данные, но нагрузка возрастет.

Единицы обработки запросов API запросов запросов

Помимо существующих процессов ограничения скорости, API запросов также ограничивает обработку на основе затрат на вызовы API. Стоимость вызова API выражается в виде единиц обработки запросов (QPUs). QPU — это валюта производительности, например ЕЗ Cosmos DB. Они абстрагируют системные ресурсы, такие как ЦП и память.

Вычисление QPU

В настоящее время один ЦП вычитается в течение одного месяца запроса данных из выделенных квот. Эта логика может измениться без уведомления.

Факторы QPU

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

  • Диапазон дат, по мере увеличения диапазона дат в запросе, увеличивается число потребляемых единиц качества обслуживания.

Другие факторы QPU могут быть добавлены без уведомления.

Квоты QPU

Следующие квоты настраиваются для каждого клиента. Запросы регулируются при исчерпании любой из следующих квот.

  • 12 QPU в 10 секунд
  • 60 QPU за 1 мин
  • 600 QPU в 1 час

Возможно, квоты будут изменены по мере необходимости, и можно добавить дополнительные квоты.

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

Вы можете проверить заголовки ответа, чтобы отслеживать количество единиц QP, потребляемых запросом API, и число оставшихся ЦП.

x-ms-ratelimit-microsoft.costmanagement-qpu-retry-after

Указывает время отката в секундах. Если запрос регулируется с 429, вернитесь за время, указанное в этом заголовке, прежде чем повторить запрос.

x-ms-ratelimit-microsoft.costmanagement-qpu-consumed

QPUs, потребляемые вызовом API.

x-ms-ratelimit-microsoft.costmanagement-qpu-remaining

Список оставшихся квот.

Следующие шаги