为什么会有新旧KooCLI系统参数,如cli-region与region,推荐使用哪个?
问题背景
在KooCLI系统参数列表中,部分参数同时存在两种形式,如“--cli-region”和“--region”。其中,未添加“cli-”前缀的称为旧系统参数;添加了“cli-”前缀的称为新系统参数。之所以支持新系统参数,是因为在KooCLI上开放的云服务中,存在部分API的某参数与旧系统参数重名的情况。该场景可能会使命令中两个同名的参数用于不同的用途,即:其一作为目标API参数,另一作为系统参数。在命令执行过程中会对参数的合法性进行检查,若命令中存在重复参数,则会提示如下错误:
[USE_ERROR]重复的参数*,如非误输,请以'cli-*'为key输入其中的KooCLI系统参数
另外,若云服务的API中存在(或可自定义)与旧系统参数同名的参数,则若该参数出现在命令中,KooCLI将无法确认该参数作何种用途。故在解析该命令的过程中,会通过交互向信息向用户确认该参数的实际用途,避免解析错误。例如:
- 目标API中存在与KooCLI系统参数%s同名的参数,无法识别命令中%s的位置.请确认该参数为:KooCLI系统参数(a);目标API参数(b);兼为两者(c):
- 目标API中可自定义与KooCLI系统参数%s同名的参数,无法识别命令中%s的位置.请确认该参数为:KooCLI系统参数(a);目标API参数(b);兼为两者(c):
因此,当您构建KooCLI命令时,对于其中的系统参数,为避免出现参数冲突而引起错误或交互,推荐使用新系统参数。
新增系统参数将添加至新系统参数列表中。旧系统参数将仅维持其已有功能,不再持续升级。
旧系统参数
KooCLI旧系统参数的描述信息及其对应的新系统参数如下表所示:
旧系统参数 |
参数描述 |
其对应的新系统参数 |
---|---|---|
region |
指定区域 |
cli-region |
access-key |
AK/SK模式时需要的参数Access Key ID |
cli-access-key |
secret-key |
AK/SK模式时需要的参数Secret Access Key |
cli-secret-key |
domain-id |
账号ID |
cli-domain-id |
project-id |
项目ID |
cli-project-id |
profile |
指定配置项 |
cli-profile |
mode |
认证模式[AKSK|ecsAgency] |
cli-mode |
jsonInput |
通过JSON文件方式传入API参数 |
cli-jsonInput |
output-cols |
table输出时,指定需要打印的字段 |
cli-output-cols |
output-rows |
table输出时,指定需要打印的层级 |
cli-output-rows |
output-num |
table输出时,是否打印表格的行号。取值为true或false,默认为true |
cli-output-num |
json-filter |
json输出时,对json结果执行JMESPath查询 |
cli-json-filter |
connect-timeout |
请求连接超时时间(秒),默认值5秒,参数最小取值为1秒 |
cli-connect-timeout |
read-timeout |
I/O超时时间(秒),默认值10秒,参数最小取值为1秒 |
cli-read-timeout |
retry-count |
请求连接重试次数,默认取值为0次,参数取值范围为0~5次 |
cli-retry-count |
security-token |
用户获取的临时token,必须和临时AK/SK同时使用 |
cli-security-token |
lang |
语言,取值为cn或en |
cli-lang |