Aracılığıyla paylaş


CLI çıkışından kabuk değişkenlerini ayarlama

NIC kimliğine sahip olduğunuza göre buna ait bilgileri almak için az network nic show komutunu çalıştırın. Kaynak grubu adı Azure kaynak kimliği içinde bulunduğundan burada bir kaynak grubuna ihtiyacınız yoktur.

az network nic show --ids $nicId

Bu komut, VM’nin ağ arabirimine ilişkin tüm bilgileri gösterir. Bu veriler arasında DNS ayarları, IP bilgileri, güvenlik ayarları ve MAC adresi yer alır. Aşağıdaki sorguda genel IP adresinin ve alt ağ nesne kimliklerinin nasıl alınıyor olduğu gösterilmektedir.

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

Bu komut, ayıklanan değerler için özel anahtarlar ('IP' ve 'Alt Ağ') içeren bir JSON nesnesini görüntüler. Bu çıkış stili, komut satırı araçları için faydalı olmayabilir ancak okunabilirlik konusunda yardımcı olur ve özel betiklerle kullanılabilir.

Komut satırı araçlarını kullanmak için özel JSON anahtarlarını ve çıkışını kaldırma komutunu tsv olarak değiştirin. komutu, read sonuçları birden çok değişkene yükleyerek bu çıkış stilini işler. İki değer ayrı satırlarda görüntülendiğinden read , komut sınırlayıcısı yeni satır dışı boşluk yerine boş dizeye ayarlanmalıdır.

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

Bash read veya PowerShell -split komutunu kullanmak istemiyorsanız, her değişkeni ayrı ayrı ayarlayabilirsiniz.

$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

Genel IP adresini aramak ve bir kabuk değişkeninde depolamak için genel IP nesne kimliğini kullanın. Azure CLI'da birden çok değeri sorgulamayı ve depolamayı göstermek için alt ağ kimliği kullanılmıştır. Bu nedenle, öğreticinin geri kalanı için gerekli değildir.

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

Artık kabuk değişkeninde depolanan VM’nin IP adresine sahipsiniz. Devam edin ve vm'ye bağlanmak için kullandığınız değerle aynı olup olmadığını denetleyin.

echo $vmIpAddress