Обзор розничных цен Azure

Клиенты Azure искали программный способ получения розничных цен для всех служб Azure. Теперь вы можете использовать API розничных цен для получения розничных цен для всех служб Azure. Раньше единственным способом, чтобы узнать цены на службы Azure было использование Калькулятора цен Azure или портала Azure. Этот API предоставляет не требующий проверки подлинности интерфейс для получения розничных тарифов на все службы Azure. Используйте API для изучения цен на службы Azure в разных регионах и разных SKU. Программный API может также помочь в создании собственных средств для внутреннего анализа и сравнения цен в SKU и регионах.

Важно!

Валюта, которую корпорация Майкрософт использует для ценообразования всех служб Azure, — usd. Цены, отображаемые в валюте USD, являются розничными ценами Майкрософт. Другие цены, не связанные с долларами США, возвращаемые API, помогут вам оценить бюджетные расходы.

Предварительная версия

Вы можете использовать новую версию API 2023-01-01-preview по адресу https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview. Предварительная версия обратно совместима с предыдущими версиями API. URL-адрес возвращает полный набор счетчиков, включая первичные и нестандартные счетчики.

При использовании или https://prices.azure.com/api/retail/priceshttps://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview возвращается полный набор счетчиков.

Тарифы для планов экономии доступны только в версии https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview .

Фильтрация основного счетчика

Вы можете ограничить ответы, чтобы получать только цены на основной счетчик с помощью:

https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview&meterRegion='primary'

Фильтрация основного счетчика поддерживается 2021-10-01 API и более поздними версиями, включая 2023-01-01.

Значение фильтра с учетом регистра

В предыдущих версиях API значение фильтра не учитывалось. Однако в версии 2023-01-01-preview и более поздних версиях значение учитывает регистр.

Пример:

https://prices.azure.com/api/retail/prices?$filter=serviceName eq 'Virtual Machines' Работает.

В более ранних версиях Virtual Machines API и virtual machines работали.

Теперь только Virtual Machines работает.

Поддержка плана сохранения Azure

Как упоминалось ранее, розничные цены на план экономии Azure поддерживаются только в предварительной версии (https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview). Для счетчиков, подходящих для плана экономии, результаты содержат соответствующий раздел для плана экономии. При выполнении плана экономии вы получаете более низкую цену OnDemand , чем цена. Дополнительные сведения о планах экономии Azure см. в документации по планам экономии Azure.

Ниже приведен пример ответа API со сведениями о плане экономии.


        {
            "currencyCode": "USD",
            "tierMinimumUnits": 0.0,
            "retailPrice": 2.305,
            "unitPrice": 2.305,
            "armRegionName": "southindia",
            "location": "IN South",
            "effectiveStartDate": "2019-05-14T00:00:00Z",
            "meterId": "0084b086-37bf-4bee-b27f-6eb0f9ee4954",
            "meterName": "M8ms",
            "productId": "DZH318Z0BQ4W",
            "skuId": "DZH318Z0BQ4W/00BQ",
            "availabilityId": null,
            "productName": "Virtual Machines MS Series",
            "skuName": "M8ms",
            "serviceName": "Virtual Machines",
            "serviceId": "DZH313Z7MMC8",
            "serviceFamily": "Compute",
            "unitOfMeasure": "1 Hour",
            "type": "Consumption",
            "isPrimaryMeterRegion": true,
            "armSkuName": "Standard_M8ms",
            "savingsPlan": [
                {
                    "unitPrice": 0.8065195,
                    "retailPrice": 0.8065195,
                    "term": "3 Years"
                },
                {
                    "unitPrice": 1.5902195,
                    "retailPrice": 1.5902195,
                    "term": "1 Year"
                }
            ]
        },

Конечная точка API

https://prices.azure.com/api/retail/prices

Примеры вызовов API

Ниже приведено несколько примеров.

Примеры вызовов, отфильтрованные только для виртуальных машин:

https://prices.azure.com/api/retail/prices?$filter=serviceName eq 'Virtual Machines'

Примеры вызовов, отфильтрованные только для резервирований:

https://prices.azure.com/api/retail/prices?$filter=priceType eq 'Reservation'

Примеры вызовов, отфильтрованных для виртуальных машин зарезервированных экземпляров:

https://prices.azure.com/api/retail/prices?$filter=serviceName eq 'Virtual Machines' and priceType eq 'Reservation'

Примеры вызовов, отфильтрованные по вычислительным ресурсам:

https://prices.azure.com/api/retail/prices?$filter=serviceFamily eq 'Compute'

Примеры вызовов, отфильтрованные для вычислений с валютой в евро:

https://prices.azure.com/api/retail/prices?currencyCode='EUR'&$filter=serviceFamily eq 'Compute'

Примеры ответов API

Ниже приведен пример ответа API без цен на резервирование.

{
            "currencyCode": "USD",
            "tierMinimumUnits": 0.0,
            "retailPrice": 0.176346,
            "unitPrice": 0.176346,
            "armRegionName": "westeurope",
            "location": "EU West",
            "effectiveStartDate": "2020-08-01T00:00:00Z",
            "meterId": "000a794b-bdb0-58be-a0cd-0c3a0f222923",
            "meterName": "F16s Spot",
            "productId": "DZH318Z0BQPS",
            "skuId": "DZH318Z0BQPS/00TG",
            "productName": "Virtual Machines FS Series Windows",
            "skuName": "F16s Spot",
            "serviceName": "Virtual Machines",
            "serviceId": "DZH313Z7MMC8",
            "serviceFamily": "Compute",
            "unitOfMeasure": "1 Hour",
            "type": "DevTestConsumption",
            "isPrimaryMeterRegion": true,
            "armSkuName": "Standard_F16s"
        }

Ниже приведен пример ответа API с ценами на резервирование и термином в ответе.

{
            "currencyCode": "USD",
            "tierMinimumUnits": 0.0,
            "reservationTerm": "1 Year",
            "retailPrice": 25007.0,
            "unitPrice": 25007.0,
            "armRegionName": "southcentralus",
            "location": "US South Central",
            "effectiveStartDate": "2020-08-01T00:00:00Z",
            "meterId": "0016083a-928f-56fd-8eeb-39287dcf676d",
            "meterName": "E64 v4",
            "productId": "DZH318Z0D1L7",
            "skuId": "DZH318Z0D1L7/018J",
            "productName": "Virtual Machines Ev4 Series",
            "skuName": "E64 v4",
            "serviceName": "Virtual Machines",
            "serviceId": "DZH313Z7MMC8",
            "serviceFamily": "Compute",
            "unitOfMeasure": "1 Hour",
            "type": "Reservation",
            "isPrimaryMeterRegion": true,
            "armSkuName": "Standard_E64_v4"
        }

Ниже приведен пример ответа с валютой, отличной от доллара США.

{
  "currencyCode": "EUR",
  "tierMinimumUnits": 0,
  "retailPrice": 0.6176,
  "unitPrice": 0.6176,
  "armRegionName": "westeurope",
  "location": "EU West",
  "effectiveStartDate": "2021-04-01T00:00:00Z",
  "meterId": "000a794b-bdb0-58be-a0cd-0c3a0f222923",
  "meterName": "F16s Spot",
  "productId": "DZH318Z0BQPS",
  "skuId": "DZH318Z0BQPS/00TG",
  "productName": "Virtual Machines FS Series Windows",
  "skuName": "F16s Spot",
  "serviceName": "Virtual Machines",
  "serviceId": "DZH313Z7MMC8",
  "serviceFamily": "Compute",
  "unitOfMeasure": "1 Hour",
  "type": "Consumption",
  "isPrimaryMeterRegion": true,
  "armSkuName": "Standard_F16s"
}

Разбиение ответа API на страницы

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

"NextPageLink": https://prices.azure.com:443/api/retail/prices?$filter=serviceName%20eq%20%27Virtual%20Machines%27&$skip=1000

Сведения о свойстве API

Ниже приведены все сведения о свойствах, которые являются частью ответа API.

Поле Примеры значений Определение
currencyCode USD Валюта, в которой определены курсы и возвращает цены в долларах США, если не указано.
tierMinimumUnits 0 Минимальные единицы потребления для получения цены
reservationTerm Год Срок резервирования — один год или три года
retailPrice 0.176346 Цены без скидки
unitPrice 0.176346
armRegionName westeurope Azure Resource Manager регион, в котором доступна служба. Эта версия поддерживает только цены в коммерческом облаке.
Location Западная Европа Центр обработки данных Azure, в котором развернут ресурс
effectiveStartDate 2020-08-01T00:00:00Z Дополнительное поле. Показывает дату вступления розничных цен в силу.
meterId 000a794b-bdb0-58be-a0cd-0c3a0f222923 Уникальный идентификатор ресурса
meterName F16s Spot Имя единицы измерения
productid DZH318Z0BQPS UniqueID продукта
skuId DZH318Z0BQPS/00TG UniqueID для номера SKU
productName Windows серии Виртуальные машины FS Название продукта
skuName F16s Spot Номер SKU
serviceName Виртуальные машины Имя службы
serviceId DZH313Z7MMC8 UniqueID службы
serviceFamily Вычисления Семейство служб номера SKU
unitOfMeasure 1 час Как измеряется использование службы
Type DevTestConsumption Тип потребления счетчика. Другие типы: Reservation и Consumption.
isPrimaryMeterRegion True Указывает, задана ли область измерения в качестве основного счетчика. Первичные счетчики используются для оплаты и выставления счетов.
armSkuName Standard_F16s Имя номера SKU, зарегистрированного в Azure
term 3 года Продолжительность срока для сберегательного плана Azure, связанного с savingsPlan информацией.

Фильтры API

Фильтры поддерживаются для следующих полей:

  • armRegionName
  • Location
  • meterId
  • meterName
  • productid
  • skuId
  • productName
  • skuName
  • serviceName
  • serviceId
  • serviceFamily
  • priceType
  • armSkuName

Фильтры добавляются в конечную точку API, как показано в примере вызовов API.

Поддерживаемые валюты

Код валюты добавляется в конечную точку API, как показано в примере вызова API.

Код валюты Подробный сведения
USD Доллар США
AUD Австралийский доллар
BRL Бразильский реал
CAD Канадский доллар
CHF Швейцарский франк
CNY Юань
DKK Датская крона
EUR Евро
GBP Британский фунт
INR Индийская рупия
JPY Иена
KRW Корейский выиграл
NOK Норвежская крона
NZD Новозеландский доллар
РУБ Российский рубль
SEK Шведская крона
TWD Тайваньский доллар

Программный пример

Следующее простое приложение Python использует API для запроса розничных цен на виртуальную машину стандартного номера SKU NP20 в центрально-южной части США. Приложение фильтрует выходные данные запроса и предоставляет нужные сведения в табличном формате.

#!/usr/bin/env python3
import requests
import json
from tabulate import tabulate 


def build_pricing_table(json_data, table_data):
    for item in json_data['Items']:
        meter = item['meterName']
        table_data.append([item['armSkuName'], item['retailPrice'], item['unitOfMeasure'], item['armRegionName'], meter, item['productName']])
        
def main():
    table_data = []
    table_data.append(['SKU', 'Retail Price', 'Unit of Measure', 'Region', 'Meter', 'Product Name'])
    
    api_url = "https://prices.azure.com/api/retail/prices?api-version=2021-10-01-preview"
    query = "armRegionName eq 'southcentralus' and armSkuName eq 'Standard_NP20s' and priceType eq 'Consumption' and contains(meterName, 'Spot')"
    response = requests.get(api_url, params={'$filter': query})
    json_data = json.loads(response.text)
    
    build_pricing_table(json_data, table_data)
    nextPage = json_data['NextPageLink']
    
    while(nextPage):
        response = requests.get(nextPage)
        json_data = json.loads(response.text)
        nextPage = json_data['NextPageLink']
        build_pricing_table(json_data, table_data)

    print(tabulate(table_data, headers='firstrow', tablefmt='psql'))
    
if __name__ == "__main__":
    main()

При выполнении этого кода выводятся следующие выходные данные:

+----------------+----------------+-------------------+----------------+------------+------------------------------------+
| SKU            |   Retail Price | Unit of Measure   | Region         | Meter      | Product Name                       |
|----------------+----------------+-------------------+----------------+------------+------------------------------------|
| Standard_NP20s |       0.828503 | 1 Hour            | southcentralus | NP20s Spot | Virtual Machines NP Series Windows |
| Standard_NP20s |       0.448207 | 1 Hour            | southcentralus | NP20s Spot | Virtual Machines NP Series         |
+----------------+----------------+-------------------+----------------+------------+------------------------------------+

Дальнейшие действия