1. Azure Retail Price APIとは
Azure各サービスの価格を取得できるAPIです(請求額ではない)。
詳細はこちらを参照ください。
2. 使い方
概要
https://prices.azure.com/api/retail/prices
に対してリクエストを投げるだけです。
ただし結果が膨大なためフィルターをかけた方が良さそうです。
URI作ってみる
今回はAv2シリーズ仮想マシンの課金情報を引っ張ってみることにします。
Key | Value |
---|---|
通貨 (currencyCode) | 日本円 (JPY) |
サービス (serviceName) | Virtual Machines |
リージョン (armRegionName) | 東日本 (japaneast) |
課金体系 (pricetype) | 従量課金 (Consumption) |
SKU (skuName) | Standard Av2シリーズ |
できたURIがこちら(長い)。
https://prices.azure.com/api/retail/prices?currencyCode='JPY'&$filter=serviceName eq 'Virtual Machines' and armRegionName eq 'japaneast' and pricetype eq 'Consumption' and startswith(skuName, 'A') and endswith(skuName, 'v2')
ワイルドカード的な書き方が分からなかったため、「Aで始まり」「v2で終わる」フィルターにしてみました。
もっとうまい書き方があれば教えていただきたいです。
投げてみる
今回はPowerShellコマンドで投げてみます。
コマンド
# URL作成 ($はエスケープ)
PS> $uri="https://prices.azure.com/api/retail/prices?currencyCode='JPY'&`$filter=serviceName eq 'Virtual Machines' and armRegionName eq 'japaneast' and pricetype eq 'Consumption' and startswith(skuName, 'A') and endswith(skuName, 'v2')"
# API叩く
PS> (Invoke-RestMethod -Method Get -Uri $uri).Items | Select-Object currencyCode,retailPrice,armRegionName,productName,skuName,serviceName,unitOfMeasure | Format-Table -AutoSize
結果
無事Av2シリーズ仮想マシンの料金が取れました。(2021/10/27時点)
currencyCode retailPrice armRegionName productName skuName serviceName unitOfMeasure
------------ ----------- ------------- ----------- ------- ----------- -------------
JPY 25.9644 japaneast Virtual Machines Av2 Series Windows A2m v2 Virtual Machines 1 Hour
JPY 12.5922 japaneast Virtual Machines Av2 Series A2 v2 Virtual Machines 1 Hour
JPY 39.7823 japaneast Virtual Machines Av2 Series Windows A4 v2 Virtual Machines 1 Hour
JPY 9.0262 japaneast Virtual Machines Av2 Series Windows A1 v2 Virtual Machines 1 Hour
JPY 6.0175 japaneast Virtual Machines Av2 Series A1 v2 Virtual Machines 1 Hour
JPY 17.0496 japaneast Virtual Machines Av2 Series A2m v2 Virtual Machines 1 Hour
JPY 18.9439 japaneast Virtual Machines Av2 Series Windows A2 v2 Virtual Machines 1 Hour
JPY 75.4415 japaneast Virtual Machines Av2 Series A8m v2 Virtual Machines 1 Hour
JPY 35.8821 japaneast Virtual Machines Av2 Series A4m v2 Virtual Machines 1 Hour
JPY 54.3803 japaneast Virtual Machines Av2 Series Windows A4m v2 Virtual Machines 1 Hour
JPY 83.5762 japaneast Virtual Machines Av2 Series Windows A8 v2 Virtual Machines 1 Hour
JPY 55.7175 japaneast Virtual Machines Av2 Series A8 v2 Virtual Machines 1 Hour
JPY 114.2209 japaneast Virtual Machines Av2 Series Windows A8m v2 Virtual Machines 1 Hour
JPY 26.5215 japaneast Virtual Machines Av2 Series A4 v2 Virtual Machines 1 Hour
補足
APIの制限として、結果上限が100件となっている模様です。
100件をこえる場合は、レスポンス内に次の100件を引き出すためのURIが記載されているため、
そちらを投げることで101件目以降の結果を確認できます。
コマンド
PS> $uri="https://prices.azure.com/api/retail/prices?currencyCode='JPY'&`$filter=serviceName eq 'Virtual Machines' and armRegionName eq 'japaneast' and pricetype eq 'Consumption'"
PS> (Invoke-RestMethod -Method Get -Uri $uri).NextPageLink
結果
https://prices.azure.com:443/api/retail/prices?currencyCode=%27JPY%27&$filter=serviceName%20eq%20%27Virtual%20Machines%27%20and%20armRegionName%20eq%20%27japaneast%27%20and%20pricetype%20eq%20%27Consumption%27&$skip=100
3. 感想
フィルターは多少面倒でしたが、サクッと料金を引っ張ってくることができました。
Azureに限らずクラウドの料金は予告なく変動あるため、常に最新の価格を取ってこられるのは便利だと思います。
普通に料金算出するなら「Azure料金計算ツール」がありますが...
自前で料金計算ツール作りたい方はぜひ。
#11/10追記
値上がりしていました。やはり、いつ変わるか分からないですね。(2021/11/10時点)
currencyCode retailPrice armRegionName productName skuName serviceName unitOfMeasure
------------ ----------- ------------- ----------- ------- ----------- -------------
JPY 26.4968 japaneast Virtual Machines Av2 Series Windows A2m v2 Virtual Machines 1 Hour
JPY 12.8504 japaneast Virtual Machines Av2 Series A2 v2 Virtual Machines 1 Hour
JPY 40.5980 japaneast Virtual Machines Av2 Series Windows A4 v2 Virtual Machines 1 Hour
JPY 9.2113 japaneast Virtual Machines Av2 Series Windows A1 v2 Virtual Machines 1 Hour
JPY 6.1409 japaneast Virtual Machines Av2 Series A1 v2 Virtual Machines 1 Hour
JPY 17.3992 japaneast Virtual Machines Av2 Series A2m v2 Virtual Machines 1 Hour
JPY 19.3324 japaneast Virtual Machines Av2 Series Windows A2 v2 Virtual Machines 1 Hour
JPY 76.9884 japaneast Virtual Machines Av2 Series A8m v2 Virtual Machines 1 Hour
JPY 36.6178 japaneast Virtual Machines Av2 Series A4m v2 Virtual Machines 1 Hour
JPY 55.4954 japaneast Virtual Machines Av2 Series Windows A4m v2 Virtual Machines 1 Hour
JPY 85.2900 japaneast Virtual Machines Av2 Series Windows A8 v2 Virtual Machines 1 Hour
JPY 56.8600 japaneast Virtual Machines Av2 Series A8 v2 Virtual Machines 1 Hour
JPY 116.5630 japaneast Virtual Machines Av2 Series Windows A8m v2 Virtual Machines 1 Hour
JPY 27.0654 japaneast Virtual Machines Av2 Series A4 v2 Virtual Machines 1 Hour