简介
腾讯云命令行工具(TCCLI)是管理腾讯云资源的统一工具。通过 TCCLI,您可以快速轻松的调用腾讯云 API 来管理您的腾讯云资源。本文档指导您安装、配置 TCCLI,并通过 TCCLI 调用 TBaaS 对外提供的云 API 接口管理您的资源。
注意:TCCLI 基于 Python 对云 API 的调用进行了封装,所以此方式同云 API 一样,可以对长安链·ChainMaker、Fabric 和 BCOS 进行操作,一般用于单次调用,不适用于集成到业务应用系统中。
安装 TCCLI
安装 Python 环境和 Pip 工具。
注意:执行以下命令,安装 TCCLI。
说明:TCCLI 依赖于 TencentCloudApi Python SDK。如果 TencentCloudApi Python SDK 的版本号小于安装 TCCLI 版本,安装 TCCLI 时,将自动升级 TencentCloudApi Python SDK。
pip install tccli
完成 TCCLI 安装后,执行以下命令,检测是否安装成功。
返回信息类似如下所示,则表示安装成功。tccli version
(可选)如果您使用的是 Linux 操作系统,执行以下命令,自动补全功能。
complete -C 'tccli_completer' tccli
说明:Windows 操作系统暂不支持此操作。
配置 TCCLI
使用腾讯云命令行工具,需进行以下初始化配置,使其完成使用 云 API 的必要前提条件。请根据实际需求,选择配置模式进行配置:
交互模式:执行
tccli co6nfigure
命令,进入交互模式快速配置。$ tccli configure TencentCloud API secretId [*afcQ]:AKIDwLw******fPRle2g9nR2OTI787aBCDP TencentCloud API secretKey [*ArFd]:OxXj7khcV******SSYNABcdCc1LiArFd region: ap-guangzhou output[json]:
- secretId:云 API 密钥 SecretId。
- secretIKey:云 API 密钥 SecretKey。
- region:云产品地域,请切换至对应产品页面获取可用的 region。
- output:可选参数,请求回包输出格式,支持 [json table text] 三种格式,默认为 json。
更多信息请执行
tccli configure help
查看。命令行模式:通过命令行模式您可以在自动化脚本中配置您的信息。
更多信息请执行# set 子命令可以设置某一配置,也可同时配置多个。 tccli configure set secretId AKIDwLw******fPRle2g9nR2OTI787aBCDP tccli configure set region ap-guangzhou output json # get 子命令用于获取配置信息。 tccli configure get secretKey secretKey = OxXj7khcV******SSYNABcdCc1LiArFd # list 子命令打印所有配置信息。 tccli configure list credential: secretId = AKIDwLw******fPRle2g9nR2OTI787aBCDP secretKey = OxXj7khcV******SSYNABcdCc1LiArFd configure: region = ap-guangzhou output = json
tccli configure [list get set] help
查看。
TCCLI 还支持多账户,方便您同时使用多种配置。以账户名 test 为例:
- 通过交互模式,指定账户名 test。
$ tccli configure --profile test TencentCloud API secretId [*BCDP]:AKIDwLw******fPRle2g9nR2OTI787aBCDP TencentCloud API secretKey [*ArFd]:OxXj7khcV******SSYNABcdCc1LiArFd region: ap-guangzhou output[json]:
- 通过命令行模式,指定账户名 test。
# set/get/list 子命令指定账户名 test。 tccli configure set region ap-guangzhou output json --profile test tccli configure get secretKey --profile test tccli 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 交易状态信息