Sdílet prostřednictvím


Získání informací o virtuálním počítači pomocí dotazů

Když je teď virtuální počítač vytvořený, můžete o něm načíst podrobné informace. Společným příkazem pro získání informací z prostředku je show.

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

Virtuální počítač má mnoho vlastností, které může být obtížné vizuálně analyzovat. Vrácený kód JSON obsahuje informace o ověřování, úložišti síťového rozhraní a dalších. Co je nejdůležitější, obsahuje ID objektů Azure pro prostředky, ke kterým je virtuální počítač připojený. ID objektů umožňují přímý přístup k těmto prostředkům za účelem získání dalších informací o konfiguraci a možnostech daného virtuálního počítače.

Pokud chcete extrahovat ID objektu, použije se --query argument. Dotazy se zapisují v dotazovacím jazyceJMESPath Začněte získáním ID objektu síťového adaptéru (NIC).

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

Pouhým přidáním dotazu tady dochází k mnoha věcem. Každá část dotazu odkazuje na klíč ve výstupním kódu JSON nebo je operátorem JMESPath.

  • networkProfile je klíč JSON nejvyšší úrovně, který má jako podklíč networkInterfaces. Pokud je hodnota JSON slovník, odkazuje se na její klíče z nadřazeného klíče pomocí operátoru ..
  • Hodnota networkInterfaces je matice, takže je zploštěná operátorem [] . Tento operátor spustí zbývající část dotazu pro každý prvek pole. V tomto případě získá hodnotu id každého prvku pole.

Formát výstupu tsv (hodnoty oddělené tabulátory) zaručuje, že výstup bude obsahovat pouze výsledná data a prázdné znaky v podobě tabulátorů a nových řádků. Vzhledem k tomu, že vrácená hodnota je jeden holý řetězec, je bezpečné přiřadit přímo k proměnné prostředí.

Další informace o dotazování výstupu Azure CLI najdete v tématu Dotazování výstupu příkazu Azure CLI pomocí dotazu JMESPath.

Pokračujte a přiřaďte ID objektu NIC proměnné prostředí.

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

Tento příklad ukazuje také použití krátkých argumentů. Můžete použít -g místo --resource-group, -n místo --name a -o místo --output.