All Products
Search
Document Center

Alibaba Cloud CLI:Filter dan format output

Last Updated:Jun 06, 2026

Perintah Alibaba Cloud CLI mengembalikan hasil dalam format JSON. Anda dapat menggunakan opsi --cli-query untuk mengekstrak bidang tertentu dengan ekspresi JMESPath (output tetap dalam format JSON), atau menggunakan opsi --output untuk menampilkan hasil sebagai tabel. Kedua opsi ini juga dapat digabungkan: filter terlebih dahulu, lalu tampilkan dalam bentuk tabel.

Catatan

Sebelum menjalankan perintah dalam topik ini, pastikan Alibaba Cloud CLI telah diinstal dan dikonfigurasi. Untuk informasi selengkapnya, lihat Install, update, and uninstall Alibaba Cloud CLI dan Configure and manage credentials.

Filter output JSON dengan --cli-query

Opsi --cli-query menerima ekspresi JMESPath dan menerapkannya pada respons API. Hasil yang telah difilter tetap dalam format JSON, sehingga skrip dan alat downstream seperti jq dapat memprosesnya secara langsung.

Sintaks:

aliyun <product> <operation> --cli-query "<JMESPath expression>"

Contoh berikut menggunakan respons ECS DescribeInstances untuk menunjukkan pola pemfilteran umum.

Contoh 1: Ekstrak daftar nilai

Ekstrak semua ID instans.

aliyun ecs DescribeInstances --biz-region-id cn-hangzhou --cli-query "Instances.Instance[].InstanceId"

Contoh output:

[
  "i-1234567891234567****",
  "i-abcdefghijklmnop****"
]

Contoh 2: Ekstrak beberapa bidang

Ekstrak InstanceId dan Status dari setiap instans.

aliyun ecs DescribeInstances --biz-region-id cn-hangzhou --cli-query "Instances.Instance[].[InstanceId,Status]"

Contoh output:

[
  [
    "i-1234567891234567****",
    "Stopped"
  ],
  [
    "i-abcdefghijklmnop****",
    "Running"
  ]
]

Contoh 3: Filter berdasarkan kondisi

Ekstrak hanya ID instans yang sedang berjalan.

aliyun ecs DescribeInstances --biz-region-id cn-hangzhou --cli-query "Instances.Instance[?Status=='Running'].InstanceId"

Contoh output:

[
  "i-abcdefghijklmnop****"
]

Contoh 4: Ubah struktur output

Gunakan ekspresi multiselect hash JMESPath untuk mengubah struktur respons menjadi array objek dengan nama kunci kustom.

aliyun ecs DescribeInstances --biz-region-id cn-hangzhou --cli-query "Instances.Instance[].{id:InstanceId,status:Status}"

Contoh output:

[
  {
    "id": "i-1234567891234567****",
    "status": "Stopped"
  },
  {
    "id": "i-abcdefghijklmnop****",
    "status": "Running"
  }
]
Catatan

Contoh-contoh di atas hanya mencakup sintaks umum. JMESPath juga mendukung ekspresi pipa, fungsi bawaan, dan fitur lanjutan lainnya. Untuk sintaks lengkap, lihat JMESPath Tutorial.

Jika --cli-query mengembalikan null, pastikan nama bidang dalam ekspresi Anda persis sesuai dengan kunci dalam respons API (nama bidang bersifat case-sensitive).

Pilih opsi yang tepat

Gunakan tabel berikut untuk menentukan opsi yang sesuai dengan skenario Anda:

Skenario

Opsi

Deskripsi

Ekstrak nilai dalam skrip

--cli-query

Output berupa JSON, yang dapat diproses langsung oleh alat seperti jq.

Jelajahi hasil di terminal

--output

Tabel lebih mudah dibaca daripada JSON mentah.

Filter dan tampilkan sebagai tabel

Keduanya

--cli-query memfilter atau mengubah struktur data terlebih dahulu, lalu --output memformat hasilnya sebagai tabel. Lihat Contoh 4 di bagian --cli-query di atas.

Parameter opsi --output

Alibaba Cloud CLI menyediakan opsi --output untuk mengekstrak bidang tertentu dari respons dan menampilkannya sebagai tabel.

Opsi --output mendukung parameter berikut:

Parameter

Deskripsi

Contoh

cols

Kolom yang akan ditampilkan dalam tabel.

Format: cols="<kolom1>,<kolom2>". Pisahkan beberapa nama kolom dengan koma (,).

  • Untuk tipe object, nama kolom harus sesuai dengan kunci dalam respons JSON.

  • Untuk tipe array, definisikan nama kolom kustom dan petakan ke indeks array berbasis nol dengan tanda titik dua (:).

  • tipe object: cols="InstanceId,Status"

  • tipe array: cols="name:0,type:1"

rows

Jalur sumber data untuk baris tabel. Menggunakan sintaks JMESPath untuk menentukan lokasi data dalam respons JSON.

rows="Instances.Instance[]"

num

Menentukan apakah akan menampilkan kolom nomor baris.

Jika diatur ke true, kolom nomor baris ditambahkan di sisi kiri tabel. Penomoran baris dimulai dari 0 (bukan 1). Nilai default: false.

num="true"

Contoh

Latar Belakang

Operasi kueri API Alibaba Cloud mengembalikan data terstruktur dalam format JSON, yang bisa sulit dibaca.

  1. Mengambil semua instans ECS sebagai contoh, jalankan perintah berikut.

    aliyun ecs DescribeInstances --biz-region-id cn-hangzhou
  2. Contoh respons (sebagian):

    {
      "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: Ekstrak bidang tingkat root

  1. Jalankan perintah berikut untuk mengekstrak bidang RequestId. Karena bidang ini berada di tingkat root respons, Anda tidak memerlukan parameter rows.

    aliyun ecs DescribeInstances --biz-region-id cn-hangzhou --output cols=RequestId
  2. Contoh output:

    RequestId
    ---------
    2B76ECBD-A296-407E-BE17-7E668A609DDA

Contoh 2: Ekstrak bidang bersarang

  1. Jalankan perintah berikut untuk mengekstrak bidang InstanceId dan Status. Jalur JMESPath untuk bidang-bidang ini adalah Instances.Instance[], jadi atur rows menjadi rows="Instances.Instance[]". Untuk informasi lebih lanjut tentang sintaks JMESPath, lihat JMESPath Tutorial.

    aliyun ecs DescribeInstances --biz-region-id cn-hangzhou --output cols="InstanceId,Status" rows="Instances.Instance[]"
  2. Contoh output:

    InstanceId             | Status
    ----------             | ------
    i-12345678912345678123 | Stopped
    i-abcdefghijklmnopqrst | Running
  3. Untuk menampilkan nomor baris, atur num ke true. Contoh output:

    Num | InstanceId             | Status
    --- | ----------             | ------
    0   | i-12345678912345678123 | Stopped
    1   | i-abcdefghijklmnopqrst | Running

Contoh 3: Ekstrak elemen dari array

  1. Jalankan perintah berikut untuk mengekstrak elemen tertentu dari array SecurityGroupId. Jalur JMESPath untuk array ini adalah Instances.Instance[].SecurityGroupIds.SecurityGroupId.

    aliyun ecs DescribeInstances --biz-region-id cn-hangzhou --output cols="sg1:0,sg2:1" rows="Instances.Instance[].SecurityGroupIds.SecurityGroupId"
  2. Contoh output:

    sg1                     | sg2
    ---                     | ---
    sg-bp12345678912345**** | sg-bp98765432198765****
    sg-bp1abcdefghijklm**** | sg-bp1zyxwvutsrqpon****