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 Machinesvirtual 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 計量耗用量類型。 其他類型為 ReservationConsumption
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         |
+----------------+----------------+-------------------+----------------+------------+------------------------------------+

下一步