简介
腾讯云命令行工具(TCCLI)是管理腾讯云资源的统一工具。通过 TCCLI,您可以快速轻松的调用腾讯云 API 来管理您的腾讯云资源。本文档指导您安装、配置 TCCLI,并通过 TCCLI 调用 TBaaS 对外提供的云 API 接口管理您的资源。
注意:
TCCLI 基于 Python 对云 API 的调用进行了封装,所以此方式同云 API 一样,可以对长安链·ChainMaker、Fabric 进行操作,一般用于单次调用,不适用于集成到业务应用系统中。
安装 TCCLI
1. 安装 Python 环境和 Pip 工具。
2. 执行以下命令,安装 TCCLI。
说明:
TCCLI 依赖于 TencentCloudApi Python SDK。如果 TencentCloudApi Python SDK 的版本号小于安装 TCCLI 版本,安装 TCCLI 时,将自动升级 TencentCloudApi Python SDK。
pip install tccli
3. 完成 TCCLI 安装后,执行以下命令,检测是否安装成功。
tccli --version
返回信息类似如下所示,则表示安装成功。


4. (可选)如果您使用的是 Linux 操作系统,执行以下命令,自动补全功能。
complete -C 'tccli_completer' tccli
说明:
Windows 操作系统暂不支持此操作。
配置 TCCLI
使用腾讯云命令行工具,需进行以下初始化配置,使其完成使用 云 API 的必要前提条件。请根据实际需求,选择配置模式进行配置:
执行
tccli configure
命令,进入交互模式快速配置。$ tccli configureTencentCloud API secretId [*afcQ]:************************************************************TencentCloud API secretKey [*ArFd]:OxXj7khcV******SSYNABcdCc1LiArFdregion: ap-guangzhououtput[json]:
secretId:云 API 密钥 SecretId。
secretIKey:云 API 密钥 SecretKey。
region:云产品地域,请切换至对应产品页面获取可用的 region。
output:可选参数,请求回包输出格式,支持 [json table text] 三种格式,默认为 json。
更多信息请执行
tccli configure help
查看。通过命令行模式您可以在自动化脚本中配置您的信息。
# set 子命令可以设置某一配置,也可同时配置多个。tccli configure set secretId ************************************************************tccli configure set region ap-guangzhou output json# get 子命令用于获取配置信息。tccli configure get secretKeysecretKey = OxXj7khcV******SSYNABcdCc1LiArFd# list 子命令打印所有配置信息。tccli configure listcredential:secretId = ************************************************************secretKey = OxXj7khcV******SSYNABcdCc1LiArFdconfigure:region = ap-guangzhououtput = json
更多信息请执行
tccli configure [list get set] help
查看。TCCLI 还支持多账户,方便您同时使用多种配置。以账户名 test 为例:
通过交互模式,指定账户名 test。
$ tccli configure --profile testTencentCloud API secretId [*BCDP]:************************************************************TencentCloud API secretKey [*ArFd]:OxXj7khcV******SSYNABcdCc1LiArFdregion: ap-guangzhououtput[json]:
通过命令行模式,指定账户名 test。
# set/get/list 子命令指定账户名 test。tccli configure set region ap-guangzhou output json --profile testtccli configure get secretKey --profile testtccli configure list --profile test在调用接口时指定账户(以 cvm DescribeZones 接口为例)。tccli cvm DescribeZones --profile test
使用 TCCLI
通过
tccli tbaas Invoke
命令,新增交易(支持同步模式和异步模式)。通过
tccli tbaas Query
命令,查询交易。通过
tccli tbaas GetInvokeTx
命令,查询 Invoke 异步调用结果。示例
准备工作
通过 TBaaS 控制台创建并初始化合约。
说明:
以转账交易合约为例,初始 a、b 两个账号值为100。
新增交易(同步模式)
请求:
tccli tbaas Invoke --Module 'transaction' --Operation 'invoke' --ClusterId '1251568418ndemo' --ChaincodeName 'tylercc' --ChannelName 'cfirst' --FuncName 'invoke' --Peers '[{"PeerName":"peer1.aliceorg.ndemo","OrgName":"AliceOrg"}]' --Args '["b", "a", "10"]'
返回:
{"Events": "AliceOrgpeer1.aliceorg.ndemo:VALID","RequestId": "f305f44d-0697-48e2-b85d-e416c4******","Txid": "a73158cc7b628fbcefc329d3fd5de9db9dfaa312528ed09cf4ab121ff6******"}
参数说明:
操作 | 参数 | 说明 |
请求 | Module | 模块名,固定字段:transaction |
| Operation | 操作名,固定字段:invoke |
| ClusterId | 区块链网络 ID,可在区块链网络详情或列表中获取 |
| ChaincodeName | 业务所属智能合约名称,可在智能合约详情或列表中获取 |
| ChannelName | 业务所属通道名称,可在通道详情或列表中获取 |
| FuncName | 该笔交易需要调用的智能合约中的函数名称 |
| Peers | 对该笔交易进行背书的节点列表(包括节点名称和节点所属组织名称,详见数据结构一节),可以在通道详情中获取该通道上的节点名称及其所属组织名称 |
| Args | 被调用的函数参数列表,示例中'["b", "a", "10"]'为b向a转账10 |
返回 | Events | 事件处理结果 |
| RequestId | 请求 ID |
| Txid | 交易 ID |
新增交易(异步模式)
请求:
tccli tbaas Invoke --Module 'transaction' --Operation 'invoke' --ClusterId '1251568418ndemo' --ChaincodeName 'tylercc' --ChannelName 'cfirst' --FuncName 'invoke' --Peers '[{"PeerName":"peer1.aliceorg.ndemo","OrgName":"AliceOrg"}]' --Args '["b", "a", "10"]' --AsyncFlag 1
返回:
{"Events": "","RequestId": "be95c1e4-ffb9-49e4-a1bb-60770c******","Txid": "1c80cea264a447c9d4d0ba50adbe6e0ff1ac1db313f8d6c83370e410db******"}
参数说明:
操作 | 参数 | 说明 |
请求 | Module | 模块名,固定字段:transaction |
| Operation | 操作名,固定字段:invoke |
| ClusterId | 区块链网络 ID,可在区块链网络详情或列表中获取 |
| ChaincodeName | 业务所属智能合约名称,可在智能合约详情或列表中获取 |
| ChannelName | 业务所属通道名称,可在通道详情或列表中获取 |
| FuncName | 该笔交易需要调用的智能合约中的函数名称 |
| Peers | 对该笔交易进行背书的节点列表(包括节点名称和节点所属组织名称,详见数据结构一节),可以在通道详情中获取该通道上的节点名称及其所属组织名称 |
| Args | 被调用的函数参数列表,示例中'["b", "a", "10"]'为b向a转账10 |
| AsyncFlag | 同步调用标识,可选参数,值为0或者不传表示使用同步方法调用,调用后会等待交易执行后再返回执行结果;值为1时表示使用异步方式调用,执行后会立即返回交易对应的Txid,后续需要通过GetInvokeTx查询该交易的执行结果。(对于逻辑较为简单的交易,可以使用同步模式;对于逻辑较为复杂的交易,建议使用异步模式,否则容易导致API因等待时间过长,返回等待超时) |
返回 | Events | 事件处理结果,异步调用返回空字符串 |
| RequestId | 请求 ID |
| Txid | 交易 ID |
查询交易
请求:
tccli tbaas Query --Module 'transaction' --Operation 'query' --ClusterId '1251568418ndemo' --ChaincodeName 'tylercc' --ChannelName 'cfirst' --FuncName 'query' --Peers '[{"PeerName":"peer1.aliceorg.ndemo","OrgName":"AliceOrg"}]' --Args '["a"]'
返回:
{"Data": ["110"],"RequestId": "237b61b6-c75f-4927-9729-1e117a******"}
参数说明:
操作 | 参数 | 说明 |
请求 | Module | 模块名,固定字段:transaction |
| Operation | 操作名,固定字段:query |
| ClusterId | 区块链网络 ID,可在区块链网络详情或列表中获取 |
| ChaincodeName | 业务所属智能合约名称,可在智能合约详情或列表中获取 |
| ChannelName | 业务所属通道名称,可在通道详情或列表中获取 |
| FuncName | 该笔交易需要调用的智能合约中的函数名称 |
| Peers | 对该笔交易进行背书的节点列表(包括节点名称和节点所属组织名称,详见数据结构一节),可以在通道详情中获取该通道上的节点名称及其所属组织名称 |
| Args | 被调用的函数参数列表,示例中'["a"]'为查询a账号的值 |
返回 | Data | 查询结果 |
| RequestId | 请求 ID |
查询 Invoke 异步调用结果
请求:
tccli tbaas GetInvokeTx --Module 'transaction' --Operation 'query_txid' --ClusterId '1251568418ndemo' --ChannelName 'cfirst' --PeerName 'peer1.aliceorg.ndemo' --PeerGroup 'AliceOrg' --TxId '1c80cea264a447c9d4d0ba50adbe6e0ff1ac1db313f8d6c83370e410db******'
返回:
{"TxValidationCode": 0,"RequestId": "6a1d26ba-b322-4aea-8db7-effc82******","TxValidationMsg": "VALID"}
参数说明:
操作 | 参数 | 说明 |
请求 | Module | 模块名,固定字段:transaction |
| Operation | 操作名,固定字段:query_txid |
| ClusterId | 区块链网络 ID,可在区块链网络详情或列表中获取 |
| ChannelName | 业务所属通道名称,可在通道详情或列表中获取 |
| PeerName | 执行该查询交易的节点名称,可以在通道详情中获取该通道上的节点名称及其所属组织名称 |
| PeerGroup | 执行该查询交易的节点所属组织名称,可以在通道详情中获取该通道上的节点名称及其所属组织名称 |
| TxId | 事务 ID |
返回 | TxValidationCode | 交易状态码 |
| RequestId | 请求 ID |
| TxValidationMsg | 交易状态信息 |