【玩转腾讯云】api命令行工具的前世今生:qcloudcli、tccli

https://cloud.tencent.com/product/cli

tccli 是"tencentcloud command line"的缩写

qcloudcli 是"qcloud command line"的缩写

腾讯云官网统一了国际化名称,用tencentcloud替代了qcloud,api的命令行工具现在是tccli

微软类似的工具Azure Cloud Shell

https://shell.azure.com/bash

不需要自己准备服务器和环境,直接执行命令即可

Qcloudcli

腾讯云 Qcloudcli 配置使用教程

https://cloud.tencent.com/developer/article/1552642

安装和使用 QcloudCli

安装 Python 和 Pip

安装命令行工具前请确保您的系统已经安装了 Python 环境和 Pip 工具。

安装Python2环境:yum install python python-pip -y

安装Python3环境:yum install python3 python3-pip -y

安装命令行工具

1) 通过 pip 安装命令行工具:

代码语言:javascript
复制
$ pip install qcloudcli

2) 检验 qcloudcli 是否安装成功:

代码语言:javascript
复制
$ qcloudcli --help

安装命令行自动补齐

1) 找到自动补全脚本 qcloud_completer 位置,运行以下命令:

代码语言:javascript
复制
$ which qcloud_completer
代码语言:javascript
复制
找到/usr/bin/qcloud_completer

2) 将 qcloud_completer 所在路径加入系统的自动补全命令,运行以下命令:

代码语言:javascript
复制
$ complete -C '/usr/bin/qcloud_completer' qcloudcli

3) 观察是否包含 qcloudcli 自动补全脚本,获得类似如下结果证明已包含了qcloudcli的自动补全脚本:

代码语言:javascript
复制
$ complete | grep qcloudcli
代码语言:javascript
复制
complete -C '/usr/bin/qcloud_completer' qcloudcli

4)使用自动补全功能

在 qcloudcli 中使用 TAB 键完成自动补全功能。如果命令唯一,则直接补全,否则展示当前所有可用命令:

代码语言:javascript
复制
$ qcloudcli c
代码语言:javascript
复制
cam     cbs     cdb     cdn     cmem    cns     configure   cvm

5)自动补全命令自动生效

为了保证每次启动自动补全命令均有效,您需要将自动补全的命令写入配置文件 ~/.bash_profile 中并执行source ~/.bash_profile

代码语言:javascript
复制
$ vim ~/.bash_profile

添加如下内容,按ESC键后输入:wq保存退出

代码语言:javascript
复制
complete -C '/usr/bin/qcloud_completer' qcloudcli

其他资料

内容分发网络 API 2017

https://cloud.tencent.com/document/api/228/1723

qcloudcli主要命令介绍

https://cloud.tencent.com/document/product/440/6186

TCCli(TencentCloudCommandLine腾讯云命令行)

tccli的安装方式参考qcloudcli的

安装Python2环境:yum install python python-pip -y

安装Python3环境:yum install python3 python3-pip -y

敲pip按两下TAB键,如果出来的命令里没有pip3,而是pip-3、pip-3.x、pip3.x,那就用alias pip3=pip3.x

例如alias pip3=pip3.6

或者绝一点,alias pip3='/usr/bin/python3 -m pip'

代码语言:javascript
复制
$ pip3 install tccli
代码语言:javascript
复制
$ which tccli_completer
代码语言:javascript
复制
找到/usr/local/bin/tccli_completer

为了保证每次启动自动补全命令均有效,需要将自动补全的命令写入配置文件 ~/.bash_profile 中并执行source ~/.bash_profile

代码语言:javascript
复制
$ vim ~/.bash_profile

添加如下内容,按ESC键后输入:wq保存退出

代码语言:javascript
复制
complete -C '/usr/local/bin/tccli_completer' tccli

配置方式①:

执行tccli configure --profile test1回车手动配

配置方式②:命令行一次性配好

tccli configure set secretId $secretId secretKey $secretKey region $region output $output --profile test2

secretId secretKey在这里查看https://console.cloud.tencent.com/cam/capi

region的格式是ap-guangzhou /ap-shanghai/ap-chongqing/ap-chengdu/……

output有3种可选:table text json

不指定--profile name的话就是默认的配置,我喜欢默认配置

tccli configure set secretId $secretId secretKey $secretKey region $region output $output

实际执行中,很多接口是区分region的,所以,我们配置tccli时,建议不要配region,最后执行tccli接口命令时加上region参数即可

例如https://cloud.tencent.com/document/product/440/34013#--cli-unfold-argument-.E5.8F.82.E6.95.B0

--cli-unfold-argument参数不要乱加

以CreateRole接口为例,我看了下--PolicyDocument 只是string型,算是比较简单的参数,string型参数用单引号引起来就行,里面的双引号也无需转义,示例如下:

tccli configure set secretId "xxxxxxxx" secretKey "yyyyyyyy" output "json" --profile test

tccli cam CreateRole --RoleName louisfeng --PolicyDocument '{"version":"2.0","statement":[{"action":"name/sts:AssumeRole","effect":"allow","principal":{"service":["cloudaudit.cloud.tencent.com","cls.cloud.tencent.com"]}}]}' --region ap-guangzhou --profile test

腾讯云大学6分26秒学习视频

https://cloud.tencent.com/edu/learning/learn-1122-2421