Анализ затрат Azure на конкретную подписку с помощью Python SDK
Итак, я пытаюсь автоматизировать получение текущей стоимости и прогноза стоимости (как это показано при анализе затрат для конкретной подписки) для конкретной подписки с помощью python SDK, но я еще не смог найти ни одного API, который это делает. .
Я пробовал использовать UsageAggregate и Rate card, но так и не нашел способа узнать стоимость за текущий месяц до настоящего времени. Если мне не хватает API или если мне нужно самостоятельно рассчитать ежемесячные расходы, я был бы признателен за любые фрагменты кода или помощь.
2 ответа
Я знаю, что немного опоздал на вечеринку, но после борьбы с той же проблемой мне удалось создать код для получения стоимости группы ресурсов, используя
azure.mgmt.costmanagement
Ссылка на API управления затратами
Пример кода в моем ответе здесь
Если у вас уже есть данные об использовании и прейскурантах, их необходимо объединить. Возьмите metrId данных об использовании и получите соответствующие данные прейскуранта.
Данные прейскуранта содержат MeterRates и IncludedQuantity, которые вы должны взять.
Вероятно, существует несколько тарифов по счетчику и включенное количество, потому что, вероятно, существуют разные затраты на использование (например, первые 10 звонков бесплатно, 3 ГБ бесплатно, ...).
Потребление начинается/сбрасывается 14-го числа месяца. Вот почему вы должны считывать данные за весь расчетный период (начинается с 14-го числа каждого месяца), потому что только так вы получите правильное потребление.
Итак, если вы используете, например, Функции Azure, и у вас есть использование 100 000 единиц в день, и вы хотите, чтобы затраты были с 20 по 30 число, тогда расчет работает следующим образом:
читать данные с 14-го по 30-е. Это 17 дней и поэтому было использовано 1.700.000 единиц. Первые 400 000 бесплатно = IncludedQuantity (то есть в этом примере первые 4 дня).
Начиная с единицы 400001, вы должны взять тариф счетчика (0,0000134928 €) и рассчитать затраты. 1.300.000 * 0,0000134928 = ~17,54€.
К счастью, лазурные функции имеют только одну скорость. Если курс изменится, например, после 5 000 000 единиц, вы также должны принять это во внимание. Если у вас есть все расходы, вы можете отфильтровать дату, которая составляет 20-30. и вы получите результат.
Его вычисление реализовано на C# и опубликовано в виде пакета NuGet здесь . Он также содержит пример консоли, которую вы можете использовать для экспорта данных.