腾讯云命令行工具 TCCLI 通用参数

TCCLI 提供了一组通用参数,这些参数可以在所有服务和接口调用中使用。本章节详细说明所有通用参数的用法。

相关产品
腾讯云命令行工具 产品页,含版本规格、价格与购买入口。

一、参数分类速查

分类 参数
认证相关 –secretId, –secretKey, –token, –role-arn, –role-session-name, –use-cvm-role
区域与接入点 –region, –endpoint
版本与配置 –version, –profile
输出相关 –output, –filter, –language
超时与轮询 –timeout, –waiter
高级功能 –generate-cli-skeleton, –cli-input-json, –cli-unfold-argument
网络代理 –https-proxy
调试与日志 –warning

三、–secretId

指定腾讯云 API 密钥 SecretId。

·类型:String

·环境变量:TENCENTCLOUD_SECRET_ID

·配置文件:支持

示例:

tccli cvm DescribeInstances –secretId AKID******

注意:说明:建议使用 tccli configure 配置密钥,避免在命令行明文传递。

四、–secretKey

指定腾讯云 API 密钥 SecretKey。

·类型:String

·环境变量:TENCENTCLOUD_SECRET_KEY

·配置文件:支持

示例:

tccli cvm DescribeInstances –secretKey ******

五、–token

临时证书 Token,用于临时密钥场景(如 STS)。

·类型:String

·环境变量:TENCENTCLOUD_TOKEN

·配置文件:支持

示例:

tccli cvm DescribeInstances –token <临时token>

六、–role-arn

指定角色 ARN(角色扮演场景)。

·类型:String

·环境变量:TENCENTCLOUD_ROLE_ARN

示例:

tccli cvm DescribeInstances –role-arn qcs::cam::uin/100001:role/role-name

七、–role-session-name

指定角色会话名称。

·类型:String

·环境变量:TENCENTCLOUD_ROLE_SESSION_NAME

示例:

tccli cvm DescribeInstances –role-session-name my-session

八、–use-cvm-role

使用 CVM 角色获取密钥,适用于在 CVM 实例中运行 TCCLI。

·类型:Boolean(开关参数)

示例:

tccli cvm DescribeInstances –use-cvm-role

十、–region

指定要操作的资源所属地域。

·类型:String

·环境变量:TENCENTCLOUD_REGION

·配置文件:支持

示例:

tccli cvm DescribeInstances –region ap-guangzhou

常用地域:

·ap-guangzhou: 广州

·ap-shanghai: 上海

·ap-beijing: 北京

十一、–endpoint

指定访问点域名。可用于指定最近的接入点或私有化部署场景。

·类型:String

·配置文件:支持(格式: 服务名.endpoint)

示例:

# 指定 CVM 广州接入点tccli cvm DescribeInstances –endpoint cvm.ap-guangzhou.tencentcloudapi.com# 配置默认 endpointtccli configure set cvm.endpoint cvm.ap-guangzhou.tencentcloudapi.com

十三、–version

指定接口版本,用于访问特定旧版本的接口。

·类型:String(日期格式: YYYY-MM-DD)

·配置文件:支持(格式: 服务名.version)

示例:

# 指定 CVM 2017-03-12 版本tccli cvm DescribeZones –version 2017-03-12# 配置默认版本tccli configure set cvm.version 2017-03-12

注意:与 tccli –version(显示工具版本)不同。

十四、–profile

指定配置文件名,用于多账户管理。

·类型:String

·环境变量:TCCLI_PROFILE

·默认值: default

示例:

# 使用名为 test 的配置tccli cvm DescribeInstances –profile test# 或使用环境变量export TCCLI_PROFILE=testtccli cvm DescribeInstances

多账户配置:

# 配置 test 账户tccli configure –profile test# 使用 test 账户tccli cvm DescribeInstances –profile test

十六、–output

指定输出格式。

·类型:String(枚举)

·可选值:json | text | table

·默认值:json

·配置文件:支持

示例:

# JSON 格式(默认)tccli cvm DescribeInstances –output json# 表格格式(易读)tccli cvm DescribeInstances –output table# 文本格式(适合脚本处理)tccli cvm DescribeInstances –output text

十七、–filter

使用 JMESPath 语法过滤返回结果字段。

·类型:String(JMESPath 表达式)

·JMESPath 文档:https://jmespath.org/

示例:

# 只看某个字段tccli cvm DescribeZones –filter TotalCount# 输出: 4# 指定数组第一个元素tccli cvm DescribeZones –filter ZoneSet[0]# 输出: {"ZoneState": "AVAILABLE", "ZoneId": "100001", …}# 获取所有元素的某个字段tccli cvm DescribeZones –filter ZoneSet[*].ZoneName# 输出: ["广州一区", "广州三区", "广州四区"]# 重命名字段tccli cvm DescribeZones –filter 'ZoneSet[*].{name:ZoneName, id:ZoneId}'# 输出: [{"name": "广州一区", "id": "100001"}, …]# 高级过滤:筛选标签tccli cvm DescribeInstances –region ap-hongkong \\ –filter 'InstanceSet[].[InstanceId,InstanceName,Tags[?Key==`app`].Value|[0]]' \\ –output text

十八、–language

指定输出语言。

·类型:String(枚举)

·可选值:zh-CN | en-US

·默认值:zh-CN

示例:

tccli cvm DescribeInstances –language en-US

20、–timeout

指定单次 API 请求的超时时间。

·类型:Integer(单位:秒)

·适用场景:

·处理大量数据的查询接口。

·长时间运行的操作。

·网络不稳定时需要延长超时。

示例:

# 设置超时时间为 60 秒tccli cvm DescribeInstances –timeout 60

21、–waiter

轮询实例状态直到满足指定条件。

·类型:JSON String

·必需参数:

·expr:查询表达式(JMESPath 语法)

·to:目标状态值

·可选参数:

·timeout:轮询超时时间(秒)

·interval:轮询间隔时间(秒)

示例:

# 基本用法:等待实例状态变为 RUNNINGtccli cvm DescribeInstancesStatus –region ap-hongkong \\ –waiter "{'expr':'InstanceStatusSet[0].InstanceState','to':'RUNNING'}"# 自定义超时和间隔tccli cvm DescribeInstancesStatus –region ap-hongkong \\ –waiter "{'expr':'InstanceStatusSet[0].InstanceState','to':'RUNNING','timeout':180,'interval':5}"

配置文件设置:

{ "waiter": { "interval": 5, "timeout": 180 }}

适用场景:

·等待实例启动完成

·等待异步任务完成

·等待资源状态变更

23、–generate-cli-skeleton

输出参数骨架(用于生成 JSON 模板)。

·类型:String(可选值)

·可选值:input(默认)

示例:

# 生成 input 参数模板tccli cvm RunInstances –generate-cli-skeleton > /tmp/RunInstances.json

24、–cli-input-json

从 JSON 文件读取参数。

·类型:String(文件路径)

·路径格式:file:// + 文件绝对路径

工作流程:

# 1. 生成骨架文件tccli cvm RunInstances –generate-cli-skeleton > /tmp/RunInstances.json# 2. 编辑 JSON 文件填写参数vim /tmp/RunInstances.json# 3. 从文件读取参数执行tccli cvm RunInstances –cli-input-json file:///tmp/RunInstances.json

适用场景:

·批量操作:相同参数创建多个资源

·复杂参数:参数较多时避免命令行过长

·脚本化:便于版本控制和复用

25、–cli-unfold-argument

复杂类型参数展开为点分格式。

·类型:Boolean(开关参数)

示例:

tccli cvm RunInstances –cli-unfold-argument

27、–https-proxy

指定 HTTPS 代理服务器。

·类型:String(URL)

·环境变量:https_proxy 或 http_proxy

示例:

# 方式一:命令行指定tccli cvm DescribeRegions –https-proxy https://192.168.1.1:1111# 方式二:环境变量(Linux/macOS)export https_proxy=https://myproxy.com:1111tccli cvm DescribeRegions# 方式三:环境变量(Windows)set http_proxy=https://myproxy.com:1111tccli cvm DescribeRegions# 永久设置(Windows)setx http_proxy=https://myproxy.com:1111

注意:说明:建议优先使用环境变量配置代理,方便全局生效。

29、–warning

开启警告日志。

·类型:Boolean(开关参数)

·默认:关闭

·配置文件:支持

示例:

tccli cvm DescribeInstances –warning

配置方式:

tccli configure set warning on

30、参数优先级

当多种方式配置同一参数时,TCCLI 按以下优先级生效(从高到低):

1. 命令行参数:直接在命令行指定。

2. 环境变量:通过 export 或 set 设置。

3. 配置文件:通过 tccli configure 配置。

4. 默认值:系统内置默认值。

示例:

# 配置文件中 region = ap-beijingtccli configure set region ap-beijing# 环境变量设置 region = ap-shanghaiexport TENCENTCLOUD_REGION=ap-shanghai# 命令行指定 region = ap-guangzhoutccli cvm DescribeInstances –region ap-guangzhou# 实际生效: ap-guangzhou(命令行优先级最高)

32、Q1:–timeout 与 –waiter 的 timeout 有什么区别?

特性 –timeout –waiter timeout
作用对象 单次 API 请求 轮询操作总时长
单位 秒 秒
包含请求次数 1 次 多次(根据 interval 计算)
适用场景 防止单次请求超时 等待异步操作完成

示例:

# –timeout: 单次请求最多等 60 秒tccli cvm DescribeInstances –timeout 60# –waiter timeout: 总共轮询 180 秒(每 5 秒查询一次)tccli cvm DescribeInstancesStatus \\ –waiter "{'expr':'…','to':'RUNNING','timeout':180,'interval':5}"# 结合使用tccli cvm DescribeInstancesStatus –timeout 30 \\ –waiter "{'expr':'…','to':'RUNNING','timeout':180,'interval':5}"# 含义:每次请求超时 30 秒,总共轮询 180 秒

33、Q2:如何管理多个腾讯云账号?

使用 –profile 参数管理多个账号配置:

# 1. 配置账号 A(默认账号)tccli configure# 输入 secretId、secretKey、region 等# 2. 配置账号 Btccli configure –profile account-b# 输入账号 B 的 secretId、secretKey、region 等# 3. 使用账号 A(默认)tccli cvm DescribeInstances# 4. 使用账号 Btccli cvm DescribeInstances –profile account-b# 5. 设置环境变量使用账号 Bexport TCCLI_PROFILE=account-btccli cvm DescribeInstances # 自动使用账号 B

34、Q3:如何查看所有可用参数?

# 查看 TCCLI 总体帮助(包含通用参数)tccli help# 查看服务帮助tccli cvm help# 查看接口帮助(包含接口特定参数)tccli cvm DescribeInstances help# 查看详细帮助tccli cvm DescribeInstances help –detail

35、Q4:如何在脚本中使用 TCCLI?

方法一:直接调用

#!/bin/bashtccli cvm DescribeInstances –region ap-guangzhou –output json

方法二:使用参数文件

#!/bin/bash# 1. 生成参数模板tccli cvm RunInstances –generate-cli-skeleton > params.json# 2. 编辑参数# … 修改 params.json …# 3. 批量执行for i in {1..5}; do tccli cvm RunInstances –cli-input-json file://$(pwd)/params.jsondone

方法三:结合 jq 处理输出

#!/bin/bash# 获取实例 ID 列表instance_ids=$(tccli cvm DescribeInstances \\ –region ap-guangzhou \\ –filter 'InstanceSet[*].InstanceId' \\ –output json | jq -r '.[]')for id in $instance_ids; do echo "Processing: $id" # 进一步操作…done

37、安全建议

·使用 tccli configure 配置密钥,避免在命令行明文传递。

·生产环境建议使用角色授权(–role-arn)或 CVM 角色(–use-cvm-role)。

·临时操作使用临时密钥(–token)。

·避免在脚本中硬编码密钥。

38、性能建议

·网络不稳定:增加 –timeout

·长时操作:使用 –waiter 轮询状态

·大量数据:结合 –filter 过滤结果

39、效率建议

·多账号管理:使用 –profile

·批量操作:使用 –generate-cli-skeleton + –cli-input-json

·脚本调试:使用 –output table + –warning

·结果处理:善用 –filter 和 JMESPath

赞 (0)
上一篇 4天前
下一篇 4天前