Azure Retail の価格の概要
Azure のお客様は、すべての Azure サービスの小売価格を取得するプログラムによる方法を探しています。 これで、Retail Rates Price API を使用して、すべての Azure サービスの小売価格を取得できます。 以前は、Azure サービスの価格を取得する方法は、Azure 料金計算ツールを使用するか、Azure portal を使用することのみでした。 この API では、すべての Azure サービスの小売価格を取得するため、認証されていないエクスペリエンスが提供されます。 API を使用して、さまざまなリージョンや異なる SKU に対する Azure サービスの価格を調査します。 プログラム API を使用すると、SKU およびリージョン間での内部分析と価格比較のために独自のツールを作成することもできます。
重要
Microsoft がすべての Azure サービスの価格を設定するために使用する通貨は USD です。 米国ドルの通貨で表示される価格は、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?api-version=2023-01-01-preview を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&meterRegion='primary'
プライマリ メーターのフィルター処理は、 を含む2023-01-01
以降の API バージョンで2021-10-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 |
USD | 指定しない限り、レートが定義され、米国ドルで価格が返される通貨。 |
tierMinimumUnits |
0 | 価格を利用するための消費量の最小単位 |
reservationTerm |
1 年 | 予約期間 – 1 年または 3 年 |
retailPrice |
0.176346 | 割引なしの価格 |
unitPrice |
0.176346 | |
armRegionName |
westeurope |
サービスが利用可能な Azure Resource Manager リージョン。 このバージョンでは、Commercial Cloud の価格のみがサポートされています。 |
Location |
西ヨーロッパ | リソースがデプロイされている 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 |
Compute | 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 エンドポイントに通貨コードを追加します。
Currency code | 詳細 |
---|---|
USD | 米ドル |
Aud | オーストラリアドル |
レアル | ブラジルレアル |
Cad | カナダドル |
Chf | スイスフラン |
人民 元 | 中国人民元 |
デンマーククローネ | デンマーク クローネ |
ユーロ | ユーロ |
ポンド | 英国ポンド |
Inr | インドルピー |
円 | 日本円 |
ウォン | 韓国語ウォン |
Nok | ノルウェー クローネ |
Nzd | ニュージーランドドル |
こする | ロシアルーブル |
Sek | スウェーデン クローナ |
TWD | 台湾ドル |
プログラムの例
次の単純な 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 |
+----------------+----------------+-------------------+----------------+------------+------------------------------------+