你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Azure 零售价格概述
Azure 客户一直在寻找一种编程方式来检索所有 Azure 服务的零售价格。 现在,可以使用零售价格 API 来获取所有 Azure 服务的零售价格。 以前,检索 Azure 服务价格的唯一方法是使用 Azure 定价计算器或使用 Azure 门户。 此 API 提供所有 Azure 服务的零售费率,且无需身份验证。 使用 API 来了解面向不同区域和不同 SKU 的 Azure 服务价格。 还可以借助编程 API 创建自己的工具,用于内部分析和 SKU 和区域范围的价格比较。
重要
Microsoft 为所有 Azure 服务定价的货币为美元。 以美元表示的价格是 Microsoft 零售价格。 API 返回的其他非美元价格仅供参考,以帮助你估算预算费用。
预览版
可以在 上使用新的 2023-01-01-preview API 版本 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 节省计划支持
如前所述,仅预览版 () https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview 支持 Azure 节省计划零售价。 对于符合节省计划的计量条件,结果具有相应的节用于节省计划。 当你承诺节省计划时,你会得到比 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 请求,最多返回 1,000 条记录。 在 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 | |
armRegionName |
westeurope |
Azure 资源管理器服务可用的区域。 此版本仅支持商业云的价格。 |
Location |
欧洲西部 | 部署资源的 Azure 数据中心 |
effectiveStartDate |
2020-08-01T00:00:00Z | 可选字段。 显示零售价格生效的日期。 |
meterId |
000a794b-bdb0-58be-a0cd-0c3a0f222923 | 资源的唯一标识符 |
meterName |
F16s Spot | 计量的名称 |
productid |
DZH318Z0BQPS | 产品的 UniqueID |
skuId |
DZH318Z0BQPS/00TG | SKU 的 UniqueID |
productName |
虚拟机 FS 系列 Windows | 产品名称 |
skuName |
F16s Spot | SKU 名称 |
serviceName |
虚拟机 | 服务名称 |
serviceId |
DZH313Z7MMC8 | 服务的 UniqueID |
serviceFamily |
计算 | SKU 的服务系列 |
unitOfMeasure |
1 小时 | 如何衡量服务的使用情况 |
Type |
DevTestConsumption | 计量消耗类型。 其他类型为 Reservation 和 Consumption 。 |
isPrimaryMeterRegion |
True | 指示是否将计量区域设置为主要计量。 主要计量用于费用和计费。 |
armSkuName |
Standard_F16s | 在 Azure 中注册的 SKU 名称 |
term |
3 年 | 与信息关联的 savingsPlan Azure 节省计划的期限长度。 |
API 筛选器
以下字段支持筛选器:
armRegionName
Location
meterId
meterName
productid
skuId
productName
skuName
serviceName
serviceId
serviceFamily
priceType
armSkuName
将筛选器追加到 API 终结点,如 API 示例调用中所示。
支持的货币
将货币代码追加到 API 终结点,如 API 示例调用中所示。
货币代码 | 详细信息 |
---|---|
USD | 美元 |
澳元 | 澳元 |
林得 | 巴西雷亚尔 |
Cad | 加元 |
Chf | 瑞士法郎 |
人民币 | 人民币 |
价位 | 丹麦克朗 |
欧元 | 欧元 |
英镑 | 英镑 |
Inr | 卢比 |
日元 | 日元 |
KRW | 韩元 |
NOK | 挪威克朗 |
NZD | 新西兰元 |
擦 | 卢布 |
SEK | 瑞典语(瑞典) |
新台币 | 新台币 |
编程示例
以下简单的 python 应用程序使用 API 来查询美国中南部区域中标准 NP20 SKU 的虚拟机的零售现成定价。 应用程序筛选查询的输出,以表格式显示所需的信息。
#!/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。