こんばんは、 @dz_ こと大平かづみです。
Prologue - はじめに
Azure CLI の az
コマンドが便利で日ごろから使っています。
今回は、メモリ〇GB以上〇コア以上のVMサイズ一覧を知りたくて、 --query
オプションを使ってちょちょいのちょいしました :
az
コマンドで条件に合ったVMサイズ一覧を表示するサンプル
# メモリ4GB以上、2コア以上のVMサイズ一覧を取得する例
az vm list-sizes -l japaneast --query "[?memoryInMb >= `4096` && numberOfCores >= `2`]" -o table
Name NumberOfCores OsDiskSizeInMb ResourceDiskSizeInMb MemoryInMb MaxDataDiskCount
---------------------- --------------- ---------------- ---------------------- ------------ ------------------
Standard_NV6 6 1047552 389120 57344 24
Standard_NV12 12 1047552 696320 114688 48
Standard_NV24 24 1047552 1474560 229376 64
Standard_A3 4 1047552 291840 7168 8
Standard_A5 2 1047552 138240 14336 4
Standard_A4 8 1047552 619520 14336 16
Standard_A6 4 1047552 291840 28672 8
Standard_A7 8 1047552 619520 57344 16
Basic_A3 4 1047552 122880 7168 8
Basic_A4 8 1047552 245760 14336 16
Standard_D2_v2 2 1047552 102400 7168 8
Standard_D3_v2 4 1047552 204800 14336 16
Standard_D4_v2 8 1047552 409600 28672 32
Standard_D5_v2 16 1047552 819200 57344 64
Standard_D11_v2 2 1047552 102400 14336 8
Standard_D12_v2 4 1047552 204800 28672 16
...
JMESPath フィルタリング Tips
ちなみに、az
コマンドの --query
オプションは便利なんですが、普段使ってる jq
コマンドとは別の jp
コマンドすなわち JMESPath の記法なのでちょっと戸惑ってしまいます。
フィルタリングで、数値の比較やAND/OR条件について調べたので、メモをおいておきます。
- 配列に対するフィルタは、
[?key==xxx]
と書く - 数値は
[?key==`100`]
のように`
で囲む - AND/ORなどの条件は、
[?key1=xxx && key2==yyy]
と書く(?
は先頭に一つ)
References
- JMESPath Examples — JMESPath
- Or Expressions - JMESPath Specification — JMESPath
- And Expressions - JMESPath Specification — JMESPath
Epilogue - おわりに
普段使ってるものでも、小さなところに発見がありますね~