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'
和更新版本的 API 版本支援 2021-10-01
主要計量篩選,包括 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'
篩選為以歐元貨幣計算的範例呼叫:
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 |
美元 | 除非指定,否則會定義費率的貨幣,並以美元傳回價格。 |
tierMinimumUnits |
0 | 可用價格的最小耗用量單位 |
reservationTerm |
1 年 | 保留期限 - 一年或三年 |
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 | SKU 的 UniqueID |
productName |
虛擬機器 FS 系列 Windows | 產品名稱 |
skuName |
F16s Spot | SKU 名稱 |
serviceName |
虛擬機器 | 服務的名稱 |
serviceId |
DZH313Z7MMC8 | 服務 UniqueID |
serviceFamily |
計算 | SKU 的服務系列 |
unitOfMeasure |
1 小時 | 如何測量服務的使用量 |
Type |
DevTestConsumption | 計量耗用量類型。 其他類型為 Reservation 和 Consumption 。 |
isPrimaryMeterRegion |
對 | 指出計量區域是否設定為主要計量。 主要計量用於費用和計費。 |
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 範例呼叫所示。
貨幣代碼 | 詳細資料 |
---|---|
美元 | 美元 |
澳元 | 澳元 |
一般 | 巴西實際 |
Cad | 加拿大元 |
Chf | 瑞士法郎 |
人民幣 | 中文日文 |
丹麥文 | 丹麥文 |
歐元 | 歐元 |
英鎊 | 英鎊 |
Inr | 印度文 |
日元 | 日本文 |
KRW | 韓文 |
NOK | 挪威文 |
NZD | 紐西蘭元 |
擦 | 俄文文 |
關卡 | 瑞典文 |
NT | 臺灣元 |
程序設計範例
下列簡單的 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。