Общие сведения о ценах на розничные продажи 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 |
+----------------+----------------+-------------------+----------------+------------+------------------------------------+
Дальнейшие действия
- Узнайте о других API управления затратами.