背景と目的
クラウド時代のインフラ構築ってオンプレ時代には比べ物にならなくらい便利になりましたよね。作っては消してを何度も繰り返したり、REST API があるおかげで GUI をポチポチしなくても Azure CLI をはじめとする色んなツールで操作ミスのない構築ができるのは嬉しい限りです。ところが、何事にもメリットがあればデメリットも存在するわけで、クラウド時代のインフラは利用料金を気にしないでいるとクラウド破産する可能性があります。私の場合は、予算設定をしておき Azure アプリとメールで予算を超えたら通知が来るように設定していたり、その日初めて Azure ポータルに入った時に日別のコストを表示して直近で思わぬコストになっていないか確認していたりします。そこで今回は、日次で自動化することも視野に入れて、Azure サブスクリプションの「現在のコスト」を Azure CLI で取得できるかやってみました。
「現在のコスト」の表示例
「現在のコスト」を Azure CLI で取得
bash
# mac 環境の場合は下記コマンドで numsum をインストールします
brew install num-utils
# 対象のサブスクリプションであることを確認します
az account show \
--query name \
--output tsv
mnrsdev
# 各リソースごとの利用料金が日本円であることを確認します
az consumption usage list \
--query [0].currency \
--output tsv
JPY
# 各リソースごとの利用料金のみを表示してみます
az consumption usage list \
--query [].pretaxCost \
--output tsv
0.00017919999999999999189086163919881755646201781928539276123046875
2.1329615999999997910663296352140605449676513671875
0.000588672000000000045054349140372096371720544993877410888671875
0.6159938400000000147116452353657223284244537353515625
0.000274175999999999998706090575950611309963278472423553466796875
2.353612800000000060407501223380677402019500732421875
0.003180800000000000120337073639120717416517436504364013671875
4.65373440000000027083615350420586764812469482421875
0.00027720000000000001583178033115473226644098758697509765625
0.9032258064516209827843340463005006313323974609375
1.8064516129032399671672237673192285001277923583984375
32.855961600000000544241629540920257568359375
71.685734400000001187436282634735107421875
0.000089599999999999995945430819599408778231008909642696380615234375
0.00663039999999999983548715221104430384002625942230224609375
0.000604799999999999955690999087210002471692860126495361328125
0.9806719999999999881623580222367309033870697021484375
1.3439865600000000522840082339826039969921112060546875
# 最後に numsum で全ての利用料金の合計を表示してみます
az consumption usage list \
--query [].pretaxCost \
--output tsv \
| numsum
119.344159467355
参考