使用高级功能

最近更新时间:2019-04-04 10:02:04

操作场景

本文详细介绍如何使用 TCCLI 高级功能,包括多版本接口访问、指定最近的接入点和返回结果过滤。

操作步骤

多版本接口访问

某些产品可能存在多个版本的接口,TCCLI 默认访问最新版本的接口。如果您想访问特定旧版本的接口,可以通过以下方式实现(以 CVM 举例)。

# 设置 cvm 产品默认使用版本:2017-03-12
tccli configure set cvm.version 2017-03-12

# 在实时使用时指定版本号。
tccli cvm help --version 2017-03-12
tccli cvm DescribeZones help --version 2017-03-12
tccli cvm DescribeZones --version 2017-03-12

指定最近的接入点(Endpoint)

TCCLI 默认会请求就近的接口点访问服务,您也可以针对某一产品指定自己的 Endpoint(以 CVM 为例)。

# 设置cvm产品默认 endpoint
tccli configure set cvm.endpoint cvm.ap-guangzhou.tencentcloudapi.com

# 调用时实时指定。
tccli cvm DescribeZones --endpoint cvm.ap-guangzhou.tencentcloudapi.com

返回结果过滤

  1. 不加任何过滤时的输出(以 CVM DescribeZones 接口的返回为例)。
    [root@VM_180_248_centos ~]# tccli cvm DescribeZones
    {
     "TotalCount": 4,
     "ZoneSet": [
         {
             "ZoneState": "AVAILABLE",
             "ZoneId": "100001",
             "Zone": "ap-guangzhou-1",
             "ZoneName": "广州一区"
         },
         {
             "ZoneState": "AVAILABLE",
             "ZoneId": "100002",
             "Zone": "ap-guangzhou-2",
             "ZoneName": "广州二区"
         },
         {
             "ZoneState": "AVAILABLE",
             "ZoneId": "100003",
             "Zone": "ap-guangzhou-3",
             "ZoneName": "广州三区"
         },
         {
             "ZoneState": "AVAILABLE",
             "ZoneId": "100004",
             "Zone": "ap-guangzhou-4",
             "ZoneName": "广州四区"
         }
     ],
     "RequestId": "4fd313a6-155f-4c7a-bf86-898c02fcae02"
    }
  2. 只看某个字段。
    [root@VM_180_248_centos ~]# tccli cvm DescribeZones  --filter TotalCount
    4
  3. 指定某个数组类型对象的第N个子对象的信息。
    [root@VM_180_248_centos ~]# tccli cvm DescribeZones  --filter ZoneSet[0]
    {
     "ZoneState": "AVAILABLE",
     "ZoneId": "100001",
     "Zone": "ap-guangzhou-1",
     "ZoneName": "广州一区"
    }
  4. 指定数组类型对象下所有某个名称的子对象的某个字段。
    [root@VM_180_248_centos ~]# tccli cvm DescribeZones  --filter ZoneSet[*].ZoneName
    [
     "广州一区",
     "广州二区",
     "广州三区",
     "广州四区"
    ]
  5. 过滤数组里的子对象,同时还以新的名称展示。
    注意:这里需要将说明过滤行为的内容用单引号包裹起来。
    [root@VM_180_248_centos ~]# tccli cvm DescribeZones  --filter 'ZoneSet[*].{name:ZoneName, id:ZoneId}'
    [
     {
         "name": "广州一区",
         "id": "100001"
     },
     {
         "name": "广州二区",
         "id": "100002"
     },
     {
         "name": "广州三区",
         "id": "100003"
     },
     {
         "name": "广州四区",
         "id": "100004"
     }
    ]