Azure 小売価格の概要
Azure のお客様は、すべての Azure サービスの小売価格をプログラムで取得する方法を探してきました。 これで、Retail Rates Prices API を使用して、すべての Azure サービスの小売価格を取得できます。 以前は、Azure サービスの価格を取得できる唯一の方法は、Azure 料金計算ツールを使用するか、Azure portal を使用することでした。 この API を使用すると、認証されていないエクスペリエンスを使用して、すべての Azure サービスの小売料金を取得できます。 API を使用して、さまざまなリージョンと異なる SKU に対する Azure サービスの価格を調べます。 プログラム API は、SKU とリージョン間の内部分析と価格比較のための独自のツールを作成するのにも役立ちます。
大事な
Microsoft がすべての Azure サービスの価格を設定するために使用する通貨は USD です。 USD 通貨で表示される価格は、Microsoft の小売価格です。 API によって返されるその他の米国ドル以外の価格は、予算経費を見積もるのに役立つ参照用です。
プレビュー バージョン
新しい 2023-01-01-preview API バージョンは、https://prices.azure.com/api/retail/prices?api-version=2023-01-01-previewで使用できます。 プレビュー バージョンは、以前の API バージョンと下位互換性があります。 URL は、プライマリ メーターと非primary メーターを含むメーターの完全なセットを返します。
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'
プライマリ メーターのフィルター処理は、2023-01-01
を含む 2021-10-01
以降の API バージョンでサポートされています。
フィルター値では大文字と小文字が区別されます
以前のバージョンの 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 要求ごとに、最大 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 | 指定しない限り、レートが定義され、価格が USD で返される通貨。 |
tierMinimumUnits |
0 | 価格を利用するための最小消費量 |
reservationTerm |
1 年 | 予約期間 – 1 年または 3 年 |
retailPrice |
0.176346 | 割引なしの Microsoft 小売価格 |
unitPrice |
0.176346 |
retailPrice と同じ |
armRegionName |
westeurope |
サービスが利用可能な Azure Resource Manager リージョン。 このバージョンでは、Commercial Cloud の価格のみがサポートされています。 |
Location |
EU 西部 | リソースがデプロイされている Azure データ センター |
effectiveStartDate |
2020-08-01T00:00:00Z | 省略可能なフィールド。 小売価格が有効な日付を表示します。 |
meterId |
000a794b-bdb0-58be-a0cd-0c3a0f222923 | リソースの一意識別子 |
meterName |
F16s スポット | メーターの名前 |
productid |
DZH318Z0BQPS | 製品の UniqueID |
skuId |
DZH318Z0BQPS/00TG | SKU の UniqueID |
productName |
Virtual Machines FS シリーズ Windows | 製品名 |
skuName |
F16s スポット | SKU 名 |
serviceName |
Virtual Machines | サービスの名前 |
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 エンドポイントにフィルターを追加します。
サポートされている 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 を使用して、米国中南部リージョンの標準 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 |
+----------------+----------------+-------------------+----------------+------------+------------------------------------+
次の手順
- 他の Cost Management APIについて説明します。