Share via


Abrufen von Informationen zum virtuellen Computer mit Abfragen

Nachdem ein virtueller Computer erstellt wurde, können detaillierte Informationen zu ihm abgerufen werden. Der allgemeine Befehl zum Abrufen von Informationen aus einer Ressource lautet show.

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

Eine VM verfügt über viele Eigenschaften, die sich schwer visuell parsen lassen. Der zurückgegebene JSON-Code enthält Informationen zu Authentifizierung, Netzwerkschnittstellenspeicher und Ähnlichem. Vor allem aber enthält er die Azure-Objekt-IDs für Ressourcen, mit denen der virtuelle Computer verbunden ist. Objekt-IDs ermöglichen den direkten Zugriff auf diese Ressourcen, sodass Sie weitere Informationen zur Konfiguration und zu den Funktionen des virtuellen Computers abrufen können.

Zum Extrahieren der Objekt-ID wird das Argument --query verwendet. Abfragen werden in der Abfragesprache JMESPathgeschrieben. Rufen Sie zunächst die Objekt-ID der NIC ab.

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

Allein durch die Abfrage kommt hier so einiges hinzu. Jeder Teil verweist auf einen Schlüssel in der JSON-Ausgabe oder ist ein JMESPath-Operator.

  • networkProfile ist ein Schlüssel der JSON-Ausgabe der obersten Ebene, der networkInterfaces als Unterschlüssel besitzt. Ist ein JSON-Wert ein Wörterbuch, wird vom übergeordneten Schlüssel mit dem Operator . auf seine Schlüssel verwiesen.
  • Der Wert networkInterfaces ist ein Array, daher wird es mit dem Operator [] vereinfacht. Dieser Operator führt den Rest der Abfrage für jedes Arrayelement aus. In diesem Fall ruft es den Wert id jedes Arrayelements ab.

Das Ausgabeformat tsv (durch Tabstopp getrennte Werte) enthält garantiert nur die Ergebnisdaten und Leerzeichen mit Tabstopps und Zeilenumbrüchen. Da der zurückgegebene Wert eine einfache Zeichenfolge ist, kann er sicher und direkt einer Shell-Variable zugewiesen werden.

Weitere Informationen zum Abfragen der Azure CLI-Ausgabe finden Sie unter Abfragen einer Azure CLI-Befehlsausgabe mithilfe einer JMESPath-Abfrage

Fahren Sie weiter und weisen Sie jetzt die NIC-Objekt-ID einer Shell-Variable zu.

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

In diesem Beispiel wird außerdem die Verwendung von kurzen Argumenten veranschaulicht. Sie können -g anstelle von --resource-group, -n anstelle von --name und -o anstelle von --output verwenden.