Nastavení proměnných prostředí z výstupu rozhraní příkazového řádku

Když teď máte ID NIC, spuštěním příkazu az network nic show o něm získejte informace. Tady nepotřebujete skupinu prostředků, protože název skupiny prostředků je obsažený v ID prostředku Azure.

az network nic show --ids $nicId

Tento příkaz zobrazí všechny informace o síťovém rozhraní virtuálního počítače. Tato data zahrnují nastavení DNS, informace o IP adrese, nastavení zabezpečení a adresu MAC. Následující dotaz ukazuje, jak získat ID objektů veřejné IP adresy a podsítě.

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"
  ]
}

Tento příkaz zobrazí objekt JSON s vlastními klíči (IP a Subnet) pro extrahované hodnoty. Přestože tento styl výstupu nemusí být užitečný pro nástroje příkazového řádku, je přehlednější pro člověka a dá se použít ve vlastních skriptech.

Pokud chcete použít nástroje příkazového řádku, změňte příkaz tak, aby se odebraly vlastní klíče JSON a výstup byl ve formátu tsv. Příkaz read tento styl výstupu zpracuje načtením výsledků do více proměnných. Vzhledem k tomu, že se na samostatných řádcích zobrazují dvě hodnoty, read musí být oddělovač příkazů nastaven na prázdný řetězec, nikoli na výchozí prázdné znaky, které nejsou nové řádky.

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

Pokud nechcete použít příkaz Bash read nebo PowerShell -split , můžete každou proměnnou nastavit samostatně.

$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

Pomocí ID objektu veřejné IP adresy vyhledejte veřejnou IP adresu a uložte ji do proměnné prostředí. ID podsítě se použilo k předvedení dotazu a uložení více hodnot v Azure CLI. Proto není potřeba pro zbytek kurzu.

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

Teď máte IP adresu virtuálního počítače uloženou v proměnné prostředí. Pokračujte a zkontrolujte, že se jedná o stejnou hodnotu, jakou jste použili k počátečnímu připojení k virtuálnímu počítači.

echo $vmIpAddress