0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Azure Retail Price APIでAzure価格取得してみた

Last updated at Posted at 2021-10-27

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       
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?