简介
腾讯云命令行工具(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
返回信息类似如下所示,则表示安装成功。
![返回信息](https://qcloudimg.tencent-cloud.cn/image/document/a04eb27430f019a36170d928352b0a94.png)
![返回信息](https://qcloudimg.tencent-cloud.cn/image/document/a04eb27430f019a36170d928352b0a94.png)
4. (可选)如果您使用的是 Linux 操作系统,执行以下命令,自动补全功能。
complete -C 'tccli_completer' tccli
说明
Windows 操作系统暂不支持此操作。
配置 TCCLI
使用腾讯云命令行工具,需进行以下初始化配置,使其完成使用 云 API 的必要前提条件。请根据实际需求,选择配置模式进行配置:
执行
tccli co6nfigure
命令,进入交互模式快速配置。$ tccli configureTencentCloud API secretId [*afcQ]:AKIDwLw******fPRle2g9nR2OTI787aBCDPTencentCloud 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 AKIDwLw******fPRle2g9nR2OTI787aBCDPtccli configure set region ap-guangzhou output json# get 子命令用于获取配置信息。tccli configure get secretKeysecretKey = OxXj7khcV******SSYNABcdCc1LiArFd# list 子命令打印所有配置信息。tccli configure listcredential:secretId = AKIDwLw******fPRle2g9nR2OTI787aBCDPsecretKey = OxXj7khcV******SSYNABcdCc1LiArFdconfigure:region = ap-guangzhououtput = json
更多信息请执行
tccli configure [list get set] help
查看。TCCLI 还支持多账户,方便您同时使用多种配置。以账户名 test 为例:
通过交互模式,指定账户名 test。
$ tccli configure --profile testTencentCloud API secretId [*BCDP]:AKIDwLw******fPRle2g9nR2OTI787aBCDPTencentCloud 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 | 交易状态信息 |