华为云命令行工具服务 KooCLI-旧输出参数cli-json-filter如何使用?

时间:2025-02-12 14:52:48

旧输出参数cli-json-filter如何使用?

通过KooCLI调用云服务API,默认会返回json格式的调用结果。KooCLI支持使用“--cli-json-filter”对json结果执行JMESPath查询,方便提炼其中的关键信息,如下:

以默认的json格式输出原调用结果:
hcloud E CS  NovaListServers --cli-region="cn-north-4" --project_id="0dd8cb****************19b5a84546"{  "servers": [    {      "name": "ecs-a6b4",      "links": [        {          "rel": "self",          "href": "https://ecs.cn-north-4.myhuaweicloud.com/v2.1/0dd8cb****************19b5a84546/servers/4f06****-****-****-****-****04dd856a"        },        {          "rel": "bookmark",          "href": "https://ecs.cn-north-4.myhuaweicloud.com/0dd8cb****************19b5a84546/servers/4f06****-****-****-****-****04dd856a"        }      ],      "id": "4f06****-****-****-****-****04dd856a"    },    {      "name": "hdn-docker",      "links": [        {          "rel": "self",          "href": "https://ecs.cn-north-4.myhuaweicloud.com/v2.1/0dd8cb****************19b5a84546/servers/6731****-****-****-****-****0bc463f0"        },        {          "rel": "bookmark",          "href": "https://ecs.cn-north-4.myhuaweicloud.com/0dd8cb****************19b5a84546/servers/6731****-****-****-****-****0bc463f0"        }      ],      "id": "6731****-****-****-****-****0bc463f0"    },    {      "name": "ecs-8f88",      "links": [        {          "rel": "self",          "href": "https://ecs.cn-north-4.myhuaweicloud.com/v2.1/0dd8cb****************19b5a84546/servers/06a2****-****-****-****-****c79a1a26"        },        {          "rel": "bookmark",          "href": "https://ecs.cn-north-4.myhuaweicloud.com/0dd8cb****************19b5a84546/servers/06a2****-****-****-****-****c79a1a26"        }      ],      "id": "06a2****-****-****-****-****c79a1a26"    }  ]}

使用“--cli-json-filter”对原json结果的内容执行JMESPath查询,获取每个servers元素的“id”和“name”,并将其重命名为“EcsID”和“EcsName”,如下示例所示:

hcloud ECS NovaListServers --cli-region="cn-north-4" --project_id="0dd8cb****************19b5a84546" --cli-json-filter="servers[].{EcsID:id,EcsName:name}"[  {    "EcsID": "4f06****-****-****-****-****04dd856a",    "EcsName": "ecs-a6b4"  },  {    "EcsID": "6731****-****-****-****-****0bc463f0",    "EcsName": "hdn-docker"  },  {    "EcsID": "06a2****-****-****-****-****c79a1a26",    "EcsName": "ecs-8f88"  }]

“--cli-json-filter”也可以用于系统命令,例如查询名称为test的配置项的所有custom参数:

hcloud configure list --cli-custom=true --cli-json-filter="profiles[?name=='test'].custom"[  {    "password": {      "isEncrypted": true,      "value": "****"    },    "projectId": {      "isEncrypted": false,      "value": "06810000000000000000000000f89d2e"    }  }]

使用“--cli-json-filter”时的注意事项如下所示

support.huaweicloud.com/hcli_faq/hcli_23_006_01.html