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


Virtuálisgép-információk lekérése lekérdezésekkel

Most, hogy létrehozott egy virtuális gépet, részletes információk kérhetők le róla. Az erőforrásból származó információk lekérésének gyakori parancsa a következő: .>

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. A legfontosabb, hogy tartalmazza a virtuális gép által csatlakoztatott erőforrások Azure-objektumazonosítóit. Az objektumazonosítók lehetővé teszik ezeknek az erőforrásoknak a közvetlen elérését, hogy további információt szerezzenek a virtuális gép konfigurációjáról és képességeiről.

Az objektumazonosító kinyeréséhez a rendszer az --query argumentumot használja. A lekérdezések JMESPath lekérdezési nyelven vannak megírva. Kezdje a hálózati adapter -vezérlő (NIC) objektumazonosítójának lekérésével.

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

Sok minden történik itt, csak a lekérdezés hozzáadásával. Mindegyik része a kimeneti JSON egyik kulcsára hivatkozik, vagy egy JMESPath-operátor.

  • networkProfile a legfelső szintű JSON kulcsa, amely alkulcsként szolgál networkInterfaces . Ha egy JSON-érték szótár, a rendszer a szülőkulcsból hivatkozik rá az . operátorral.
  • A(z) networkInterfaces érték egy tömb, ezért a [] operátorral van kibontva. Ez az operátor a lekérdezés fennmaradó részét minden tömb elemen futtatja. Ebben az esetben minden id tömbelem értékét lekérdezi.

A kimeneti formátum tsv (tabulátorral tagolt értékek) garantáltan csak a tabulátorokból és újvonalakból álló eredményadatokat és szóközöket tartalmazza. Mivel a visszaadott érték egyetlen sima szöveg, biztonságosan hozzárendelhető közvetlenül egy shellvá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)

Ez a példa a rövid argumentumok használatát is szemlélteti. -g Használhatja helyett --resource-group, -n helyett --name, és -o helyett --output.