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 は、プライマリ メーターと非プライマリ メーターを含むメーターの完全なセットを返します。
または 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
サポートされています。
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 要求ごとに、最大 100 個のレコードが返されます。 API 応答の最後には、次のページへのリンクがあります。 次に例を示します。
"NextPageLink": https://prices.azure.com:443/api/retail/prices?$filter=serviceName%20eq%20%27Virtual%20Machines%27&$skip=100
API プロパティの詳細
API 応答の一部であるすべてのプロパティの詳細を次に示します。
フィールド | サンプル値 | 定義 |
---|---|---|
currencyCode |
USD | 指定しない限り、レートが定義され、価格が米国ドルで返される通貨。 |
tierMinimumUnits |
0 | 価格を利用するための消費量の最小単位 |
reservationTerm |
1 年 | 予約期間 – 1 年または 3 年 |
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 スポット | メーターの名前 |
productid |
DZH318Z0BQPS | 製品の UniqueID |
skuId |
DZH318Z0BQPS/00TG | SKU の UniqueID |
productName |
Virtual Machines FS シリーズ ウィンドウ | 製品名 |
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 |
+----------------+----------------+-------------------+----------------+------------+------------------------------------+