腾讯云命令行工具(TCCLI)是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
本文将结合实际用户场景需求,提供相关 TCCLI 的实践例子,希望能帮助大家更快速掌握 TCCLI 的用法。安装、配置 TCCLI 的详细步骤请参考官网命令行工具的介绍,本文就不再重复了。
关于 API 的选用,本文继续以创建 CVM 为例,因为该 API 较为复杂,输入参考涉及到的数据类型也较为齐全。
输入参数
其实 TCCLI 的使用也是挺简单的,对于输入参数的语法是: --参数名称 参数值
String
代码语言:txt复制## 用法示例,注意不要加引号将镜像ID引起来,参数和参数值直接有一个空格,别漏了哈
--ImageId img-8toqc6s3
Integer
代码语言:txt复制## 用法示例,注意不要加引号,参数和参数值直接有一个空格,别漏了哈
--InstanceCount 1
Boolean
由于创建 CVM 的API 中输入参数没有 Boolean 类型,那我这里选择关闭实例的 API 来做示例。
代码语言:txt复制## 用法示例,注意不要加引号,而且是小写的true或者false。
--ForceStop true
Array of String
代码语言:txt复制## 用法示例,注意不要漏了外面的单引号
--SecurityGroupIds '["sg-is82khqv"]'
Array of Object
代码语言:txt复制## 用法示例,注意不要漏了外面的单引号
--DataDisks '[{"DiskType":"LOCAL_BASIC","DiskSize":50},{"DiskType":"CLOUD_BASIC","DiskSize":500}]'
Object(实例1)
代码语言:txt复制## 用法示例,注意不要漏了外面的单引号,
--Placement '{"Zone":"ap-beijing-3","ProjectId":1048443,"HostIds":["host-cy8swiou"]}'
Object(实例2)
代码语言:txt复制## 用法示例,注意不要漏了外面的单引号
--InstanceMarketOptions '{"MarketType":"spot", "SpotOptions":{"MaxPrice":"0.15","SpotInstanceType":"one-time"}}'
Filters
由于创建 CVM 的API 中输入参数没有 Filters,那我这里选择查看实例列表的 API 来做示例。
补充需要提醒大家的是,注意windows和linux操作系统的区别,在拼接字符串的时候windows下可能需要使用转义符。上面的例子也是如此哈,要注意windows下的转义哈。
linux 示例代码:
代码语言:txt复制tccli cvm DescribeInstances --Filters '[{"Name":"private-ip-address","Values":["172.16.0.12"]}]'
windows 示例代码:
代码语言:txt复制tccli cvm DescribeInstances --Filters "[{"Name":"private-ip-address","Values":["172.16.0.12"]}]"
UserData
该参数需要以 base64 方式编码,支持的最大数据大小为 16KB。关于获取此参数的详细介绍,请参阅Windows首次启动实例时运行命令和Linux首次启动实例时运行命令的介绍。
代码语言:txt复制## 请不要加引号
--UserData IyEvYmluL2Jhc2gKIyMgSW5zdGFsbCB0aGUgcGFja2FnZXMKZWNobyAtZSAiMXFhekBXU1giIHwgcGFzc3dkCg==
完整例子
tccli cvm RunInstances --InstanceChargeType SPOTPAID --Placement '{"Zone":"ap-beijing-3"}' --DataDisks '{"DiskType":"LOCAL_BASIC","DiskSize":50},{"DiskType":"CLOUD_BASIC","DiskSize":500}' --InstanceType S2.MEDIUM4 --ImageId img-8toqc6s3 --SystemDisk '{"DiskType":"CLOUD_BASIC", "DiskSize":50}' --InternetAccessible '{"InternetChargeType":"TRAFFIC_POSTPAID_BY_HOUR","InternetMaxBandwidthOut":10,"PublicIpAssigned":true}' --InstanceCount 1 --InstanceName TCCLI-TEST --SecurityGroupIds '"sg-is82khqv"' --HostName TCCLI-HOST-NAME1 --VirtualPrivateCloud '{"VpcId":"vpc-faob6vpi", "SubnetId":"subnet-mrmr3047"}' --InstanceMarketOptions '{"MarketType":"spot", "SpotOptions":{"MaxPrice":"0.15","SpotInstanceType":"one-time"}}' --UserData IyEvYmluL2Jhc2gKIyMgSW5zdGFsbCB0aGUgcGFja2FnZXMKZWNobyAtZSAiMXFhekBXU1giIHwgcGFzc3dkCg==