Share via


Festlegen von Shellvariablen aus der CLI-Ausgabe

Sie haben die NIC-ID abgerufen. Führen Sie nun az network nic show aus, um Informationen zu dieser ID abzurufen. Hier benötigen Sie keine Ressourcengruppe, da der Ressourcengruppenname in der Azure-Ressourcen-ID enthalten ist.

az network nic show --ids $nicId

Mit diesem Befehl werden alle Informationen zur Netzwerkschnittstelle des virtuellen Computers angezeigt. Diese Daten enthalten DNS-Einstellungen, IP-Informationen, Sicherheitseinstellungen und die MAC-Adresse. Die folgende Abfrage zeigt, wie Sie die öffentliche IP-Adresse und die Subnetzobjekt-IDs abrufen.

az network nic show --ids $nicId \
  --query '{IP:ipConfigurations[].publicIPAddress.id, Subnet:ipConfigurations[].subnet.id}' \
  -o json
{
  "IP": [
    "/subscriptions/.../resourceGroups/TutorialResources/providers/Microsoft.Network/publicIPAddresses/TutorialVM1PublicIP"
  ],
  "Subnet": [
    "/subscriptions/.../resourceGroups/TutorialResources/providers/Microsoft.Network/virtualNetworks/TutorialVM1VNET/subnets/TutorialVM1Subnet"
  ]
}

Mit diesem Befehl wird ein JSON-Objekt angezeigt, das benutzerdefinierte Schlüssel („IP“ und „Subnetz“) für die extrahierten Werte enthält. Dieser Ausgabestil ist zwar unter Umständen für Befehlszeilentools nicht nützlich, kann jedoch von Menschen besser gelesen und zudem mit benutzerdefinierten Skripts verwendet werden.

Wenn Sie Befehlszeilentools verwenden möchten, ändern Sie den Befehl, um die benutzerdefinierten JSON-Schlüssel zu entfernen und als tsv auszugeben. Der Befehl read verarbeitet diesen Ausgabestil, indem Ergebnisse in mehrere Variablen geladen werden. Da zwei Werte in separaten Zeilen angezeigt werden, muss das Trennzeichen des Befehls read auf die leere Zeichenfolge und nicht auf den Standardwert (Leerstelle ohne Zeilenumbruch) festgelegt werden.

read -d '' ipId subnetId <<< $(az network nic show \
  --ids $nicId \
  --query '[ipConfigurations[].publicIPAddress.id, ipConfigurations[].subnet.id]' \
  -o tsv)

Wenn Sie die Befehle Bash read oder PowerShell -split nicht verwenden möchten, können Sie jede Variable separat festlegen.

$ipId = az network nic show --ids $nicId --query '[ipConfigurations[].publicIPAddress.id]' -o tsv
$subnetId = az network nic show --ids $nicId --query '[ipConfigurations[].subnet.id]' -o tsv

Verwenden Sie die Objekt-ID der öffentlichen IP-Adresse, um die öffentliche IP-Adresse zu ermitteln, und speichern Sie sie in einer Shellvariablen. Die Subnetz-ID wurde verwendet, um zu veranschaulichen, wie mehrere Werte in der Azure CLI abgefragt und gespeichert werden. Daher wird sie für den Rest des Tutorials nicht benötigt.

vmIpAddress=$(az network public-ip show --ids $ipId \
  --query ipAddress \
  -o tsv)

Sie haben die IP-Adresse des virtuellen Computers nun in einer Shellvariablen gespeichert. Überprüfen Sie anschließend, ob es sich dabei um den gleichen Wert handelt, den Sie ursprünglich zum Herstellen einer Verbindung mit dem virtuellen Computer verwendet haben.

echo $vmIpAddress