Gyakorlat – Virtuális gép rendszer- és futtatókörnyezeti információinak lekérése
Most, hogy létrehoztunk egy virtuális gépet, más parancsokon keresztül kaphatunk róla információt.
Kezdjük a futtatással vm list
.
az vm list
Ez a parancs visszaadja az előfizetésben meghatározott összes virtuális gépet. A kimenetet egy adott erőforráscsoportra szűrheti a --resource-group
paraméteren keresztül.
Kimenetek típusai
Látható, hogy az eddig végrehajtott összes parancs alapértelmezett választípusa JSON. Ez kiválóan alkalmas szkriptek készítésére, de a legtöbben nehezebben olvasnak. A(z) --output
jelölővel módosíthatja bármely válasz kimeneti stílusát. Futtassa például a következő parancsot az Azure Cloud Shellben a különböző kimeneti stílus megtekintéséhez.
az vm list --output table
A(z) table
paranccsal együtt megadhatja a következőket: json
(alapértelmezett), jsonc
(színezett JSON) vagy tsv
(tabulátorral tagolt értékek). Próbáljon ki néhány változatot az előző paranccsal a különbség megtekintéséhez.
Az IP-cím lekérése
Egy másik hasznos parancs, vm list-ip-addresses
amely felsorolja a virtuális gép nyilvános és privát IP-címét. Ha megváltoznak, vagy nem rögzítette őket a létrehozás során, bármikor lekérhetők.
az vm list-ip-addresses -n SampleVM -o table
Ez a következő kimenetet adja vissza:
VirtualMachine PublicIPAddresses PrivateIPAddresses
---------------- ------------------- --------------------
SampleVM 168.61.54.62 10.0.0.4
Tipp.
Figyelje meg, hogy a jelölő rövidített szintaxisát --output
használjuk.-o
A legtöbb paramétert egyetlen kötőjelre és betűre rövidítheti az Azure CLI-parancsokra. Rövidíthet --name
például a következőre-n
:--resource-group
-g
Ez hasznos a billentyűzetkarakterek beírásához, de javasoljuk, hogy a teljes beállításnevet használja a szkriptekben az egyértelműség érdekében. Az egyes parancsokkal kapcsolatos részletekért tekintse meg a dokumentációt.
Virtuális gép részleteinek lekérése
Részletesebb információkat kaphatunk egy adott virtuális gépről a parancsot futtató vm show
név vagy azonosító alapján.
az vm show --resource-group "<rgn>[sandbox resource group name]</rgn>" --name SampleVM
Ez egy meglehetősen nagy JSON-blokkot ad vissza, amely mindenféle információt tartalmaz a virtuális gépről, beleértve a csatlakoztatott tárolóeszközöket, hálózati adaptereket és az összes objektumazonosítót az erőforrásokhoz, amelyekhez a virtuális gép csatlakozik. Válthatunk tábla formátumra is, de ekkor kimarad szinte az összes érdekes adat. Ehelyett használhatjuk a JSON beépített lekérdezési nyelvét, a JMESPath nyelvet.
Szűrők hozzáadása lekérdezésekhez a JMESPath használatával
A JMESPath egy iparági szabványos lekérdezési nyelv, amely a JSON-objektumok köré épül. A legegyszerűbb lekérdezés, ha megad egy azonosítót, amely kiválasztja a JSON-objektumban lévő egyik kulcsot.
Ha például adott a következő objektum:
{
"people": [
{
"name": "Fred",
"age": 28
},
{
"name": "Barney",
"age": 25
},
{
"name": "Wilma",
"age": 27
}
]
}
A(z) people
lekérdezéssel visszaadható az értékek tömbje a(z) people
tömbhöz. Ha csak egy személyre kíváncsi, indexelőt használhat. A people[1]
például a következőt adja vissza:
{
"name": "Barney",
"age": 25
}
Konkrét minősítőket is hozzáadhat, amelyek bizonyos kritériumoknak megfelelően az objektum egy részét adják vissza. Például a people[?age > '25']
minősítő hozzáadásakor ez lesz az eredmény:
[
{
"name": "Fred",
"age": 28
},
{
"name": "Wilma",
"age": 27
}
]
Végül az eredmények korlátozásához hozzáadhatunk egy adott people[?age > '25'].[name]
objektumot, amely csak a neveket adja vissza:
[
[
"Fred"
],
[
"Wilma"
]
]
A JMESQuery számos más érdekes lekérdezési funkcióval is rendelkezik. Amikor van rá ideje, tekintse meg a JMESPath.org webhelyen elérhető online oktatóanyagot.
Az Azure CLI-lekérdezések szűrése
A JMES-lekérdezések alapszintű ismeretével szűrőket adhatunk hozzá a lekérdezések által visszaadott adatokhoz, például a vm show
parancshoz. Lekérhetjük például a rendszergazdai felhasználónevet:
az vm show \
--resource-group "<rgn>[sandbox resource group name]</rgn>" \
--name SampleVM \
--query "osProfile.adminUsername"
Lekérdezhetjük a virtuális géphez rendelt méretet:
az vm show \
--resource-group "<rgn>[sandbox resource group name]</rgn>" \
--name SampleVM \
--query hardwareProfile.vmSize
Vagy a hálózati adapterek összes azonosítójának lekéréséhez futtathatjuk a lekérdezést:
az vm show \
--resource-group "<rgn>[sandbox resource group name]</rgn>" \
--name SampleVM \
--query "networkProfile.networkInterfaces[].id"
Ez a lekérdezési technika bármely Azure CLI-paranccsal működik, és használatával bizonyos adatbiteket lekérhet a parancssorból. Ez a szkripteléshez is hasznos. Lekérhet például egy értéket az Azure-fiókjából, és tárolhatja egy környezetben vagy szkriptváltozóban. Ha úgy dönt, hogy így használja, érdemes hozzáadni a --output tsv
paramétert (amelyre rövidíthet -o tsv
). Ez olyan eredményeket ad vissza, amelyek csak a tényleges adatértékeket tartalmazzák tabulátorokkal.
Például:
az vm show \
--resource-group "<rgn>[sandbox resource group name]</rgn>" \
--name SampleVM \
--query "networkProfile.networkInterfaces[].id" -o tsv
ezt a szöveget adja vissza: /subscriptions/20f4b944-fc7a-4d38-b02c-900c8223c3a0/resourceGroups/2568d0d0-efe3-4d04-a08f-df7f009f822a/providers/Microsoft.Network/networkInterfaces/SampleVMVMNic