Megosztás a következőn keresztül:


Virtuális gépre vonatkozó adatok lekérdezése

Most, hogy a virtuális gép létrejött, lekérhetők a rá vonatkozó részletes adatok. Az információk erőforrásból való lekéréséhez használt általános parancs a show.

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

A virtuális gépek számos olyan tulajdonsággal rendelkeznek, amelyeket nehéz lehet vizuálisan elemezni. A visszaadott JSON információkat tartalmaz a hitelesítésről, a hálózati adapterek tárolásáról és egyebekről. Ami a legfontosabb: tartalmazza azon erőforrások Azure-objektumazonosítóit, amelyekhez a virtuális gép csatlakoztatva van. Az objektumazonosítók segítségével közvetlenül férhet hozzá ezekhez az erőforrásokhoz, és további adatokat kérhet le a virtuális gép konfigurációjáról és funkcióiról.

Az objektumazonosító kinyeréséhez a rendszer az --query argumentumot használja. A lekérdezések JMESPath lekérdezési nyelveníródnak, kezdve a hálózati adapter (NIC) objektumazonosítójának lekérésével.

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

Már egy lekérdezés hozzáadásával is sok mindenre kell odafigyelni. Az egyes részek JMESPath operátorok, vagy a kimeneti JSON-fájlban lévő kulcsokra hivatkoznak.

  • A networkProfile a legfelső szintű JSON kulcsa, melynek alkulcsa a networkInterfaces. Ha a JSON értéke egy szótár, akkor annak kulcsaira a . operátorral hivatkoznak a szülőkulcsból.
  • Az networkInterfaces érték egy tömb, ezért az operátorral van összeolvadva [] . Ez az operátor futtatja le a lekérdezés hátralévő részét az egyes tömbelemeken. Ebben az esetben az egyes tömbelemek id értékét kéri le.

A tsv (tabulátorral tagolt értékek) kimeneti formátum kizárólag az eredményül kapott adatokat, valamint a tabulátorokból és sortörésekből álló szóközöket tartalmazza. Mivel a visszaadott érték egyetlen csupasz sztring, biztonságosan hozzárendelhető közvetlenül egy rendszerhéjváltozóhoz.

Az Azure CLI-kimenet lekérdezésével kapcsolatos további információkért tekintse meg az Azure CLI-parancs kimenetének JMESPath-lekérdezéssel történő lekérdezését ismertető témakört .

Most rendelje hozzá a hálózati adapter objektumazonosítóját egy rendszerhéjváltozóhoz.

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

A példa a rövid argumentumok használatára is példaként szolgál. A --resource-group helyett használhatja a -g, a --namehelyett az -n, az --output helyett pedig az -o értéket.