Bagikan melalui


Mengatur variabel shell dari output CLI

Setelah Anda memiliki ID NIC, jalankan az network nic show untuk mendapatkan informasinya. Anda tidak memerlukan grup sumber daya di sini, karena nama grup sumber daya terkandung dalam ID sumber daya Azure.

az network nic show --ids $nicId

Perintah ini menampilkan semua informasi untuk antarmuka jaringan VM. Data ini mencakup pengaturan DNS, informasi IP, pengaturan keamanan, dan alamat MAC. Kueri berikut menunjukkan cara mendapatkan alamat IP publik dan ID objek subnet.

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

Perintah ini menampilkan objek JSON yang memiliki kunci khusus ('IP' dan 'Subnet') untuk nilai yang diekstraksi. Meskipun gaya output ini mungkin tidak berguna untuk alat baris perintah, gaya ini membantu keterbacaan manusia dan dapat digunakan dengan skrip khusus.

Untuk menggunakan alat baris perintah, ubah perintah untuk menghapus kunci dan output JSON khusus sebagai tsv. read Perintah memproses gaya output ini dengan memuat hasil ke dalam beberapa variabel. Karena dua nilai ditampilkan pada baris terpisah, pemisah perintah read harus diatur ke string kosong daripada default spasi putih non-baris baru.

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

Jika Anda tidak ingin menggunakan perintah Bash read atau PowerShell -split , Anda dapat mengatur setiap variabel secara terpisah.

$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

Gunakan ID objek IP publik untuk mencari alamat IP publik dan menyimpannya dalam variabel shell. ID subnet digunakan untuk menunjukkan cara mengkueri dan menyimpan beberapa nilai di Azure CLI. Oleh karena itu, tidak diperlukan untuk sisa tutorial.

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

Sekarang Anda memiliki alamat IP VM yang disimpan dalam variabel shell. Lanjutkan dan periksa apakah nilainya sama dengan yang Anda gunakan untuk awalnya terhubung ke VM.

echo $vmIpAddress