從 CLI 輸出設定殼層變數
現在您已擁有 NIC 識別碼,請執行 az network nic show
以取得其資訊。 您不需要這裡的資源群組,因為資源組名包含在 Azure 資源識別碼內。
az network nic show --ids $nicId
此命令會顯示 VM 網路介面的所有資訊。 此數據報括 DNS 設定、IP 資訊、安全性設定,以及 MAC 位址。 下列查詢示範如何取得公用IP位址和子網物件標識碼。
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"
]
}
此命令會顯示 JSON 物件,此物件具有所擷取值的自定義金鑰 ('IP' 和 'Subnet')。 雖然這種輸出樣式可能不適用於命令行工具,但它有助於人類可讀性,並可搭配自定義腳本使用。
若要使用命令列工具,請變更 命令以移除自訂 JSON 金鑰,並將輸出當做 tsv
。 命令會將 read
結果載入多個變數,以處理此輸出樣式。 由於兩個值會顯示在不同的行上,因此命令分隔符必須設定為空字串, read
而不是非換行空格符的預設值。
read -d '' ipId subnetId <<< $(az network nic show \
--ids $nicId \
--query '[ipConfigurations[].publicIPAddress.id, ipConfigurations[].subnet.id]' \
-o tsv)
如果您不想使用 Bash read
或 PowerShell -split
命令,可以個別設定每個變數。
$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
使用公用IP物件標識碼來查閱公用IP位址,並將其儲存在殼層變數中。 子網標識碼可用來示範如何在 Azure CLI 中查詢和儲存多個值。 因此,本教學課程的其餘部分並不需要它。
vmIpAddress=$(az network public-ip show --ids $ipId \
--query ipAddress \
-o tsv)
現在您已將 VM 的 IP 位址儲存在殼層變數中。 繼續檢查它是否與您最初用來連線到 VM 的值相同。
echo $vmIpAddress