AZコマンドの出力結果をJSON形式で扱い、取得したい項目だけを取り出す方法をまとめてみました。
AzureCLIの通常の出力だと出力される情報が多いため、必要な情報を取得するために結果を加工する方法として利用できるかと思いますので、参考としていただければと思います。
インターフェースはpowershellで実行しています。
powershellコマンド例
リソースグループの一覧からリソースグループ名だけを取得してみます。
$list = az group list | ConvertFrom-Json
$list.name
実行結果
以下のようにリソースグループ名だけを出力することができました。
PS C:\> $list = az group list | ConvertFrom-Json
PS C:\> $list.name
Test-RG
Test-RG2
[参考]そのまま出力させた場合
[az group list] だけを実行すると以下のような出力になります。
PS C:\> az group list
[
{
"id": "/subscriptions/xxxxxx/resourceGroups/Test-RG",
"location": "japaneast",
"managedBy": null,
"name": "Default-Networking",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null,
"type": "Microsoft.Resources/resourceGroups"
},
{
"id": "/subscriptions/xxxxxx/resourceGroups/Test-RG2",
"location": "japaneast",
"managedBy": null,
"name": "Test-RG",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null,
"type": "Microsoft.Resources/resourceGroups"
}
]
PS C:\>
リソースグループでは上記のような項目しかありませんが、仮想マシンなどのオプションの多いリソースでは1リソースに対して出力される情報がとても多いので、出力を加工してほしい情報だけを取得できるようにするととても見やすいです。
またスクリプトとして組むときにもこの手法は有用かと思いますので参考としていただければ幸いです。