Operasi API Alibaba Cloud mengembalikan tanggapan dalam format JSON, yang bisa sulit dibaca. Topik ini menjelaskan cara menggunakan fitur penyaringan lanjutan dari Alibaba Cloud CLI untuk mengekstrak bidang spesifik dari tanggapan JSON dan menampilkannya dalam sebuah tabel.
Deskripsi opsi --output
Alibaba Cloud CLI menyediakan opsi --output untuk membantu Anda mengekstrak dan memvisualisasikan bidang spesifik dari sebuah tanggapan. Secara default, output ditampilkan sebagai tabel.
Opsi --output mencakup parameter berikut:
Parameter | Deskripsi | Contoh |
cols | Nama kolom tabel. Pisahkan beberapa nama kolom dengan koma (,). Format:
| Sebagai contoh, cols="InstanceId,Status" untuk sebuah |
rows |
JMESPath ekspresi yang digunakan untuk mengkueri sumber data untuk baris tabel dari tanggapan JSON. | rows="Instances.Instance[]" |
num | Menentukan apakah akan menampilkan kolom nomor baris. Nilai valid: Nilai default: Penomoran dimulai dari | num="true" |
Contoh
Latar Belakang
Contoh berikut menunjukkan cara mengekstrak bidang spesifik dari tanggapan JSON operasi API.
Jalankan perintah berikut untuk menanyakan informasi tentang semua instance ECS:
aliyun ecs DescribeInstancesContoh respons:
{ "PageNumber": 1, "TotalCount": 2, "PageSize": 10, "RequestId": "2B76ECBD-A296-407E-BE17-7E668A609DDA", "Instances": { "Instance": [ { "ImageId": "ubuntu_16_0402_64_20G_alibase_20171227.vhd", "InstanceTypeFamily": "ecs.xn4", "VlanId": "", "InstanceId": "i-1234567891234567****", "Status": "Stopped", "SecurityGroupIds": { "SecurityGroupId": [ "sg-bp12345678912345****", "sg-bp98765432198765****" ] } }, { "ImageId": "ubuntu_16_0402_64_20G_alibase_20171227.vhd", "InstanceTypeFamily": "ecs.xn4", "VlanId": "", "InstanceId": "i-abcdefghijklmnop****", "Status": "Running", "SecurityGroupIds": { "SecurityGroupId": [ "sg-bp1abcdefghijklm****", "sg-bp1zyxwvutsrqpon****" ] } } ] } }
Contoh 1
Jalankan perintah berikut untuk mengekstrak parameter
RequestIddari tanggapan sebelumnya. Karena parameter ini adalah elemen tingkat akar, Anda tidak perlu menentukan parameterrows.aliyun ecs DescribeInstances --output cols=RequestIdContoh output:
RequestId --------- 2B76ECBD-A296-407E-BE17-7E668A609DDA
Contoh 2
Jalankan perintah berikut untuk mengekstrak parameter
InstanceIddanStatusdari tanggapan sebelumnya. Atur parameter rows menjadiInstances.Instance[], yang merupakan ekspresi JMESPath untuk array yang berisi parameter-parameter tersebut. Untuk informasi lebih lanjut tentang ekspresi JMESPath, lihat Tutorial JMESPath.aliyun ecs DescribeInstances --output cols="InstanceId,Status" rows="Instances.Instance[]"Contoh output:
InstanceId | Status ---------- | ------ i-12345678912345678123 | Stopped i-abcdefghijklmnopqrst | RunningUntuk menampilkan kolom nomor baris, atur parameter num menjadi
true. Output sampel:Num | InstanceId | Status --- | ---------- | ------ 0 | i-12345678912345678123 | Stopped 1 | i-abcdefghijklmnopqrst | Running
Contoh 3
Jalankan perintah berikut untuk mengekstrak elemen spesifik dari array
SecurityGroupId. Ekspresi JMESPath untuk array ini adalahInstances.Instance[].SecurityGroupIds.SecurityGroupId.aliyun ecs DescribeInstances --output cols="sg1:0,sg2:1" rows="Instances.Instance[].SecurityGroupIds.SecurityGroupId"Output sampel:
sg1 | sg2 --- | --- sg-bp11234567891234**** | sg-bp19876543219876**** sg-bp1abcdefghijklm**** | sg-bp1zyxwvutsrqpon****