Latihan - Sistem kueri dan informasi runtime tentang VM

Selesai

Sekarang setelah kita membuat komputer virtual, kita bisa mendapatkan informasi tentang hal itu melalui perintah lain.

Mari mulai dengan menjalankan vm list.

az vm list

Perintah ini akan mengembalikan semua komputer virtual yang ditentukan dalam langganan ini. Anda dapat memfilter output ke grup sumber daya tertentu melalui parameter --resource-group.

Jenis output

Perhatikan bahwa jenis respons default untuk semua perintah yang kita lakukan sejauh ini adalah JSON. Ini bagus untuk pembuatan skrip, tetapi kebanyakan orang merasa lebih sulit untuk membaca. Anda dapat mengubah gaya output untuk respons apa pun melalui bendera --output. Misalnya, coba perintah berikut di Azure Cloud Shell untuk melihat gaya output yang berbeda.

az vm list --output table

Bersama dengan table, Anda dapat menentukan json (default), jsonc (JSON berwarna), atau tsv (Nilai Yang Dipisahkan Tab). Coba beberapa variasi dengan perintah sebelumnya untuk melihat perbedaannya.

Dapatkan alamat IP

Perintah berguna lainnya adalah vm list-ip-addresses, yang mencantumkan alamat IP publik dan privat untuk VM. Jika berubah, atau Anda tidak mengambilnya selama pembuatan, Anda dapat mengambilnya kapan saja.

az vm list-ip-addresses -n SampleVM -o table

Output ini mengembalikan seperti:

VirtualMachine    PublicIPAddresses    PrivateIPAddresses
----------------  -------------------  --------------------
SampleVM          168.61.54.62         10.0.0.4

Tip

Perhatikan bahwa kita menggunakan sintaks singkat untuk --output bendera sebagai -o. Anda dapat mempersingkat sebagian besar parameter untuk perintah Azure CLI menjadi satu tanda hubung dan huruf. Misalnya, Anda dapat mempersingkat --name menjadi -n dan --resource-group menjadi -g. Ini berguna untuk memasukkan karakter keyboard, tetapi sebaiknya gunakan nama opsi lengkap dalam skrip untuk kejelasan. Periksa dokumentasi untuk mengetahui detail pada setiap perintah.

Dapatkan detail VM

Kami bisa mendapatkan informasi lebih detail tentang komputer virtual tertentu dengan nama atau ID menggunakan perintah vm show.

az vm show --resource-group "<rgn>[sandbox resource group name]</rgn>" --name SampleVM

Ini mengembalikan blok JSON yang cukup besar dengan semua jenis informasi tentang VM, termasuk perangkat penyimpanan terlampir, antarmuka jaringan, dan semua ID objek untuk sumber daya yang terhubung dengan VM. Sekali lagi, kita bisa berubah menjadi format tabel, tetapi itu menghilangkan hampir semua data yang menarik. Sebagai gantinya, kita dapat beralih ke bahasa kueri bawaan untuk JSON yang disebut JMESPath.

Menambahkan filter ke kueri dengan JMESPath

JMESPath adalah bahasa kueri standar industri yang dibangun di sekitar objek JSON. Kueri paling sederhana adalah menentukan pengidentifikasi yang memilih kunci di objek JSON.

Misalnya, dengan objek:

{
  "people": [
    {
      "name": "Fred",
      "age": 28
    },
    {
      "name": "Barney",
      "age": 25
    },
    {
      "name": "Wilma",
      "age": 27
    }
  ]
}

Kita bisa menggunakan kueri people untuk mengembalikan lapisan nilai untuk lapisan people. Jika kita hanya menginginkan salah satu orang, kita bisa menggunakan pengindeks. Misalnya, people[1] akan mengembalikan:

{
    "name": "Barney",
    "age": 25
}

Kita juga dapat menambahkan kualifikasi tertentu yang akan mengembalikan subset objek berdasarkan beberapa kriteria. Misalnya, menambahkan people[?age > '25'] pengkualifikasi akan mengembalikan:

[
  {
    "name": "Fred",
    "age": 28
  },
  {
    "name": "Wilma",
    "age": 27
  }
]

Akhirnya, kita dapat membatasi hasil dengan menambahkan pilihan: people[?age > '25'].[name] yang mengembalikan hanya nama:

[
  [
    "Fred"
  ],
  [
    "Wilma"
  ]
]

JMESQuery memiliki beberapa fitur kueri menarik lainnya. Ketika Anda punya waktu, lihat tutorial online yang tersedia di situs JMESPath.org Anda.

Memfilter kueri Azure CLI Anda

Dengan pemahaman dasar tentang kueri JMES, kita dapat menambahkan filter ke data yang dikembalikan oleh kueri seperti vm show perintah . Misalnya, kami dapat mengambil nama pengguna admin:

az vm show \
    --resource-group "<rgn>[sandbox resource group name]</rgn>" \
    --name SampleVM \
    --query "osProfile.adminUsername"

Kita bisa mendapatkan ukuran yang ditetapkan ke VM kita:

az vm show \
    --resource-group "<rgn>[sandbox resource group name]</rgn>" \
    --name SampleVM \
    --query hardwareProfile.vmSize

Atau, untuk mengambil semua ID untuk antarmuka jaringan Anda, kita dapat menjalankan kueri:

az vm show \
    --resource-group "<rgn>[sandbox resource group name]</rgn>" \
    --name SampleVM \
    --query "networkProfile.networkInterfaces[].id"

Teknik kueri ini berfungsi dengan perintah Azure CLI apa pun, dan Anda dapat menggunakannya untuk menarik bit data tertentu keluar pada baris perintah. Ini juga berguna untuk pembuatan skrip. Misalnya, Anda dapat menarik nilai dari akun Azure Anda dan menyimpannya di lingkungan atau variabel skrip. Jika Anda memutuskan untuk menggunakannya dengan cara ini, ada baiknya menambahkan parameter --output tsv (yang dapat Anda persingkat menjadi -o tsv). Ini akan mengembalikan hasil yang hanya menyertakan nilai data aktual dengan pemisah tab.

Contohnya:

az vm show \
    --resource-group "<rgn>[sandbox resource group name]</rgn>" \
    --name SampleVM \
    --query "networkProfile.networkInterfaces[].id" -o tsv

mengembalikan teks: /subscriptions/20f4b944-fc7a-4d38-b02c-900c8223c3a0/resourceGroups/2568d0d0-efe3-4d04-a08f-df7f009f822a/providers/Microsoft.Network/networkInterfaces/SampleVMVMNic