すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud CLI:パラメーターを抽出して表形式で出力する

最終更新日:Nov 04, 2025

Alibaba Cloud API 操作は JSON 形式で応答を返しますが、これは読みにくい場合があります。このトピックでは、Alibaba Cloud CLI の高度なフィルター機能を使用して JSON 応答から特定のフィールドを抽出し、テーブルに表示する方法について説明します。

--output オプションの説明

Alibaba Cloud CLI は、応答から特定のフィールドを抽出して視覚化するのに役立つ --output オプションを提供します。デフォルトでは、出力はテーブルとして表示されます。

--output オプションには、次のパラメーターが含まれています:

パラメーター

説明

cols

テーブルの列名。複数の列名はコンマ (,) で区切ります。

フォーマット: cols="<column1>,<column2>"

  • object 型の場合、列名は JSON 応答のキーと一致する必要があります。

  • array 型の場合、カスタム名を定義でき、コロン (:) を使用して配列インデックスにマッピングする必要があります。

たとえば、object の場合は `cols="InstanceId,Status"`、array の場合は `cols="name:0,type:1"` です。

rows

JSON 応答からテーブルの行のデータソースをクエリするために使用される JMESPath 式。

rows="Instances.Instance[]"

num

行番号の列を表示するかどうかを指定します。

有効な値: true および false

デフォルト値: false

番号付けは 0 から始まります。

num="true"

バックグラウンド

次の例では、API 操作の JSON 応答から特定のフィールドを抽出する方法を示します。

  1. 次のコマンドを実行して、すべての ECS インスタンスに関する情報をクエリします。

    aliyun ecs DescribeInstances
  2. レスポンス例:

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

例 1

  1. 次のコマンドを実行して、前の応答から RequestId パラメーターを抽出します。このパラメーターはルートレベルの要素であるため、rows パラメーターを指定する必要はありません。

    aliyun ecs DescribeInstances --output cols=RequestId
  2. 出力例:

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

例 2

  1. 次のコマンドを実行して、前の応答から InstanceId および Status パラメーターを抽出します。rows パラメーターを Instances.Instance[] に設定します。これは、これらのパラメーターを含む配列の JMESPath 式です。JMESPath 式の詳細については、「JMESPath チュートリアル」をご参照ください。

    aliyun ecs DescribeInstances --output cols="InstanceId,Status" rows="Instances.Instance[]"
  2. 出力例:

    InstanceId             | Status
    ----------             | ------
    i-12345678912345678123 | Stopped
    i-abcdefghijklmnopqrst | Running
  3. 行番号の列を表示するには、num パラメーターを true に設定します。出力例:

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

例 3

  1. 次のコマンドを実行して、SecurityGroupId 配列から特定の要素を抽出します。この配列の JMESPath 式は Instances.Instance[].SecurityGroupIds.SecurityGroupId です。

    aliyun ecs DescribeInstances --output cols="sg1:0,sg2:1" rows="Instances.Instance[].SecurityGroupIds.SecurityGroupId"
  2. 出力例:

    sg1                     | sg2
    ---                     | ---
    sg-bp11234567891234**** | sg-bp19876543219876****
    sg-bp1abcdefghijklm**** | sg-bp1zyxwvutsrqpon****