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


Общие сведения о ценах на розничные продажи 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/prices или 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.

Фильтрация первичного измерения

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

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' работает.

В более ранних версиях API Virtual Machines и 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'

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

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

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

Поддерживаемые значения serviceFamily

Ниже приведен список поддерживаемых значений serviceFamily. Сведения могут быть изменены.

Analytics
Azure Arc
Azure Communication Services
Azure Security
Azure Stack
Compute
Containers
Data
Databases
Developer Tools
Dynamics
Gaming
Integration
Internet of Things
Management and Governance
Microsoft Syntex
Mixed Reality
Networking
Other
Power Platform
Quantum Computing
Security
Storage
Telecommunications
Web
Windows Virtual Desktop

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

В следующем простом приложении 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         |
+----------------+----------------+-------------------+----------------+------------+------------------------------------+

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