分页类接口结果聚合

更新时间:

使用阿里云CLI调用各云产品的分页类接口时,默认情况下仅返回第一页的结果。当需要获取所有的结果时,您可以使用阿里云CLI的聚合结果功能。

--pager选项字段说明

您可以通过使用--pager选项,对分页类接口的数组类结果进行聚合。该选项包含以下四个字段:

字段名

描述

PageNumber

字段值对应API返回结果中描述列表当前页码的字段,默认值:PageNumber

PageSize

字段值对应API返回结果中描述每页返回的最大结果数量的字段,默认值:PageSize

TotalCount

字段值对应API返回结果中描述列表总行数的字段,默认值:TotalCount

path

由于API返回结果的多样性,您可以手动指定需要聚合的数组类型所在的JMESPath路径。

说明

--pager选项默认可以自动识别结果中的数组类型数据。

示例场景

  1. ECS产品的DescribeInstances接口是分页类接口。执行如下命令,默认情况下,该接口仅返回实例信息列表第一页的结果。

    aliyun ecs DescribeInstances
  2. 系统显示类似如下输出(部分截取)。

    {
        "PageNumber": 1,
        "TotalCount": 4,
        "PageSize": 10,
        "RequestId": "6EA82E70-9750-4A97-A738-E021D8A57F07",
        "Instances": {
            "Instance": [
                {
                    "ImageId": "win2012r2_64_dtc_9600_zh-cn_40G_alibase_20190318.vhd",
                    "SerialNumber": "f06857e8-7f3c-443a-9f88-8e84eb5163c7",
                    "Cpu": 1,
                    "Memory": 2048,
                    "DeviceAvailable": true,
                    "SecurityGroupIds": {
                        "SecurityGroupId": [
                            "sg-bp1fgviwol82z8ap348n"
                        ]
                    }
                }
            ]
        }
    }

示例命令

  1. 执行如下命令,将会返回全部分页中的实例信息列表。

    aliyun ecs DescribeInstances --pager PageNumber=PageNumber PageSize=PageSize TotalCount=TotalCount path=Instances.Instance

    由于该接口返回的值都与子字段的默认值一致,使用--pager命令时可省略所有子字段。简化格式如下:

    aliyun ecs DescribeInstances --pager
  2. 系统显示如下聚合结果(部分截取)。

    说明

    聚合之后的输出,只包含有聚合的字段。若您使用过滤功能获取您需要了解的字段,此时过滤字段的路径为聚合之后的JMESPath路径。更多信息,请参见过滤且表格化输出结果

    {
        "Instances": {
            "Instance": [
                {
                    "ImageId": "win2012r2_64_dtc_9600_zh-cn_40G_alibase_20190318.vhd",
                    "SerialNumber": "f06857e8-7f3c-443a-9f88-8e84eb5163c7",
                    "Cpu": 1,
                    "Memory": 2048,
                    "DeviceAvailable": true,
                    "SecurityGroupIds": {
                        "SecurityGroupId": [
                            "sg-bp1fgviwol82z8ap348n"
                        ]
                    }
                }
            ]
        }
    }