Mendapatkan informasi VM dengan kueri

Setelah VM dibuat, informasi mendetail tentang hal itu dapat diambil. Perintah umum untuk mendapatkan informasi dari sumber daya adalah show.

az vm show --name $vmName --resource-group $resourceGroup

Komputer Virtual memiliki banyak properti yang dapat sulit diurai secara visual. JSON yang ditampilkan berisi informasi tentang autentikasi, penyimpanan antarmuka jaringan, dan banyak lagi. Yang terpenting, ini berisi ID objek Azure untuk sumber daya tempat VM terhubung. ID objek memungkinkan akses ke sumber daya ini secara langsung untuk mendapatkan informasi selengkapnya tentang konfigurasi dan kemampuan VM.

Untuk mengekstrak ID objek, --query argumen digunakan. Kueri ditulis dalam bahasa kueri JMESPath. Dimulai dengan mendapatkan ID objek pengontrol antarmuka jaringan (NIC).

az vm show --name $vmName \
  --resource-group $resourceGroup \
  --query 'networkProfile.networkInterfaces[].id' \
  --output tsv

Ada banyak hal yang terjadi di sini, hanya dengan menambahkan kueri. Setiap bagiannya merujuk ke kunci dalam JSON output, atau berupa operator JMESPath.

  • networkProfile adalah kunci JSON tingkat atas, yang memiliki networkInterfaces sub-kunci. Jika nilai JSON adalah kamus, kuncinya dirujuk dari kunci induk dengan operator ..
  • Nilainya networkInterfaces adalah array, sehingga diratakan dengan [] operator. Operator ini menjalankan sisa kueri di setiap elemen larik. Dalam hal ini, ia mendapatkan nilai id dari setiap elemen larik.

Format output tsv (nilai yang dipisahkan tab) dipastikan hanya menyertakan data hasil dan spasi kosong yang terdiri dari tab dan baris baru. Karena nilai yang dikembalikan adalah string kosong tunggal, aman untuk menetapkan langsung ke variabel shell.

Untuk informasi selengkapnya tentang mengkueri output Azure CLI, lihat Cara mengkueri output perintah Azure CLI menggunakan kueri JMESPath

Lanjutkan dan tetapkan ID objek NIC ke variabel shell sekarang.

nicId=$(az vm show \
  -n $vmName \
  -g $resourceGroup \
  --query 'networkProfile.networkInterfaces[].id' \
  -o tsv)

Contoh ini juga menunjukkan penggunaan argumen singkat. Anda dapat menggunakan -g, bukan --resource-group, -n bukan --name, dan -o bukan --output.