Sdílet prostřednictvím


Nastavení shellových proměnných z výstupu Azure CLI

Nyní, když máte ID síťové karty, spusťte az network nic show, abyste získali jeho 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. Dotaz níže ukazuje, jak získat veřejnou IP adresu a ID objektů 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. I když tento styl výstupu nemusí být užitečný pro nástroje příkazového řádku, pomáhá s lidskou čitelností a dá se použít s vlastními skripty.

Pokud chcete použít nástroje příkazového řádku, změňte příkaz tak, aby odebral vlastní klíče JSON a výstup jako 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, oddělovač příkazů read musí být nastaven na prázdný řetězec, místo výchozího prázdného znaku, který není nový řádek.

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é shellu. 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 shellové proměnné. 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