旧输出参数cli-json-filter如何使用?
通过KooCLI调用云服务API,默认会返回json格式的调用结果。KooCLI支持使用“--cli-json-filter”对json结果执行JMESPath查询,方便提炼其中的关键信息,如下:
hcloud ECS 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”时的注意事项如下所示。