Aracılığıyla paylaş


Sorgularla VM bilgilerini alma

Artık bir VM oluşturduğunuza göre, vm hakkında ayrıntılı bilgiler alınabilir. Bir kaynaktan bilgi almaya yönelik yaygın komut şudur: show.

az vm show --name $vmName --resource-group $resourceGroup

Sanal Makinenin görsel olarak ayrıştırılması zor olabilecek birçok özelliği vardır. Döndürülen JSON kimlik doğrulaması, ağ arabirimi depolama alanı ve daha fazlası hakkında bilgi içerir. En önemlisi, VM'nin bağlı olduğu kaynaklar için Azure nesne kimliklerini içerir. Nesne kimlikleri, VM'nin yapılandırması ve özellikleri hakkında daha fazla bilgi edinmek için bu kaynaklara doğrudan erişmeye olanak tanır.

Nesne kimliğini ayıklamak için --query bağımsız değişkeni kullanılır. Sorgular JMESPath sorgu dilinde yazılır. Ağ arabirimi denetleyicisi (NIC) nesne kimliğini alarak başlayın.

az vm show --name $vmName \
  --resource-group $resourceGroup \
  --query 'networkProfile.networkInterfaces[].id' \
  --output tsv

Burada sorguyu eklemekle birçok şey oluyor. Her bölümü çıkış JSON'unda bir anahtara başvurur veya bir JMESPath işlecidir.

  • networkProfile , alt anahtar olarak bulunan en üst düzey JSON'un networkInterfaces anahtarıdır. Bir JSON değeri bir sözlükse, anahtarlarına üst anahtardan . operatörü ile referans verilir.
  • Değer networkInterfaces, bir dizi olduğundan [] işleciyle düzleştirilir. Bu işleç, her dizi öğesinde sorgunun geri kalanını çalıştırır. Bu durumda, her dizi öğesinin id değerini alır.

Çıkış biçiminin tsv (sekmeyle ayrılmış değerler) yalnızca sonuç verilerini ve sekmelerle yeni satırlardan oluşan boşluğu içermesi garanti edilir. Döndürülen değer tek bir çıplak dize olduğundan, doğrudan bir kabuk değişkenine atamak güvenlidir.

Azure CLI çıkışını sorgulama hakkında daha fazla bilgi için bkz. JMESPath sorgusu kullanarak Azure CLI komut çıktısını sorgulama

Devam edin ve NIC nesne kimliğini şimdi bir kabuk değişkenine atayın.

nicId=$(az vm show \
  -n $vmName \
  -g $resourceGroup \
  --query 'networkProfile.networkInterfaces[].id' \
  -o tsv)

Bu örnek, kısa argümanların kullanımı örneğini de gösterir. -g yerine --resource-group, -n yerine --name ve -o yerine --output kullanabilirsiniz.