Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >腾讯云 API 3.0实践分享

腾讯云 API 3.0实践分享

原创
作者头像
腾讯云计算产品团队
发布于 2018-06-25 04:38:12
发布于 2018-06-25 04:38:12
18.5K6
举报

产品的每次更新迭代都意味着一种提升和进步,API的升级也如此。此次API的升级带来的价值是巨大的,简单总结如下:

  • 第一,API3.0版本高并发和多地域就近接入的能力,极大降低了用户访问时延。
  • 第二,API3.0版本更加统一规范而且详细的接口文档和错误码描述,更加方便用户使用腾讯云所有产品以及降低用户定位问题的门槛。

虽然说API升级了会带来了好处,但的确也会因为其和2.0的差异,使得用户在切换到3.0时不知道如何使用,本文将以 CVM 的 API 为例,分享一些实际的例子(Python 语言),从例子中学会 API 3.0的正确使用姿势。

1、SDK 和 API

为方便开发者调试和接入腾讯云产品 API,腾讯云提供了不同语言版本的 SDK 。在此,我也建议用户尽可能使用 SDK,各语言版本的 SDK 可以在腾讯云 SDK 中心下载。

然而这里有个注意事项,以 CVM 的 API 为例,在 API 文档中的输入参数部分,您会看到 Version 是必选参数。如果您使用 SDK 的话, CvmClient的时候已经默认传好 Version,则不需要将 Version 作为必选参数进行传参了。

2、输入参数

从 API 文档中可以看到,输入参数的数据类型会有很多中,比如String、Integer、Array of String、Array of Object 以及 Object。其中 String 和 Integer 比较容易理解,我则不例举例子了。而是以创建 CVM为例分别对另外三种输入参数类型举例讲解。

Array of String

示例代码:

代码语言:txt
AI代码解释
复制
request.SecurityGroupIds = ['sg-ivobypxx','sg-ivobypyy']

Array of Object

DataDisks 的数据结构为:

06.jpg
06.jpg

示例代码:

代码语言:txt
AI代码解释
复制
request.DataDisks = [{'DiskType':'LOCAL_BASIC','DiskSize':50},{'DiskType':'CLOUD_BASIC','DiskSize':500}]

Object(简单)

Placement 的数据结构为:

示例代码:

代码语言:txt
AI代码解释
复制
request.Placement = {'Zone':'ap-beijing-2','ProjectId':1048443,'HostIds':['host-cy8swiou']}

Object(复杂)

VirtualPrivateCloud 的数据结构为:

示例代码:

代码语言:txt
AI代码解释
复制
request.VirtualPrivateCloud = {'VpcId': 'vpc-d1it25j4','SubnetId':'subnet-9hwkfmm3','PrivateIpAddresses':["192.168.2.10","192.168.2.11"]}

上述分别是不用参数类型的传参例子,下面是完整的一个示例:

返回的结果如下:

控制台的结果如下:

3、Filters 的使用

本小节以查看实例列表对 Filters 的使用进行个示例讲解。

Filter 的数据结构为:

示例代码:

返回结果如下:

4、CLI 的使用

除了提供 SDK ,腾讯云还提供了好用的腾讯云命令行工具(TCCLI),该命令行工具的使用是非常简单的,我这里就不举例说明了,详情可查看官网文档。

然后这里需要提醒大家的是,注意windows和linux操作系统的区别,在拼接字符串的时候windows下可能需要使用转义符。

linux 示例代码:

代码语言:txt
AI代码解释
复制
tccli cvm DescribeInstances  --Filters '[{"Name":"private-ip-address","Values":["172.16.0.12"]}]'

windows 示例代码:

代码语言:txt
AI代码解释
复制
tccli cvm DescribeInstances  --Filters "[{\"Name\":\"private-ip-address\",\"Values\":[\"172.16.0.12\"]}]"

最后,再补充个小 tips,使用 CLI 可以对返回结果进行过滤哦。

例1,只看某个字段:

代码语言:txt
AI代码解释
复制
tccli cvm DescribeZones  --filter TotalCount

例2,只看指定某个数组类型对象的第N个子对象的信息:

代码语言:txt
AI代码解释
复制
tccli cvm DescribeZones  --filter ZoneSet[0]

更多高级用法请参考官方文档

5、例子延伸

在上面已经以创建 CVM 为例提供了一个样例, 但仔细点的话则会发现上面的一些参数的值是我直接写上去了,比如ImageId 和 InstanceType 以及 SecurityGroupIds 等。但是其实也是需要调用额外的 API 来获取的,下面我将分享一个完整的例子(获取一个CentOS 7.4 64操作系统的镜像),希望对大家在真正使用 API 的时候有所启发。

代码语言:txt
AI代码解释
复制
def DescribeImage(Region, secretId, secretKey):
    cred = credential.Credential(secretId, secretKey)
    client = cvm_client.CvmClient(cred, Region)
    request = models.DescribeImagesRequest()
    respFilter = models.Filter()
    respFilter.Name = "image-type"
    respFilter.Values = ['PUBLIC_IMAGE']
    request.Filters = [respFilter]
    result = client.DescribeImages(request)
    result_srt = result.to_json_string()
    result_dic = json.loads(result_srt)
    return {'result': True, 'data': result_dic}
代码语言:txt
AI代码解释
复制
def RunInstance(Region, secretId, secretKey):
	        cred = credential.Credential(secretId, secretKey)
	        client = cvm_client.CvmClient(cred, Region)
	        request = models.RunInstancesRequest()
	        request.InstanceChargeType = 'POSTPAID_BY_HOUR'
	        ImageIds_data = DescribeImage(Region, secretId, secretKey)
	        ImageSet = ImageIds_data['data']['ImageSet']
	        for i in ImageSet:
	            OsName = i['OsName']
	            if 'CentOS 7.4 64' in OsName:
	                ImageId = i['ImageId']
	                break
	        request.ImageId = ImageId
	        request.InstanceType = 'S2.SMALL1'
	        request.SecurityGroupIds = ['sg-ep8wygxr']
	        request.SystemDisk = {'DiskType':'CLOUD_SSD','DiskSize':50}
	        request.DataDisks = [{'DiskType':'CLOUD_BASIC','DiskSize':20}]
	        request.Placement = {'Zone':'ap-beijing-3','ProjectId':1114329}
	        request.VirtualPrivateCloud = {'VpcId': 'vpc-3slwyfxi','SubnetId':'subnet-d15cidw7','PrivateIpAddresses':["192.168.0.100","192.168.0.110"]}
	        request.InstanceCount = 2
	        result = client.RunInstances(request)
	        result_srt = result.to_json_string()
	        result_dic = json.loads(result_srt)
	        return {'result': True, 'data': result_dic}

本次分享到此,希望对大家有帮助。感谢大家的浏览。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
6 条评论
热度
最新
很实用!
很实用!
回复回复点赞举报
学习了,果断分享了
学习了,果断分享了
回复回复点赞举报
正在愁没有一个引导的文章,恰好看到了,谢谢了
正在愁没有一个引导的文章,恰好看到了,谢谢了
回复回复点赞举报
自己根据写了个SDK,更新去了
自己根据写了个SDK,更新去了
回复回复点赞举报
太棒了,给力给力
太棒了,给力给力
回复回复点赞举报
及时雨,感谢分享
及时雨,感谢分享
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
腾讯云 API 3.0实践分享(下)
当前腾讯云的产品的 API 陆陆续续都在切换到 3.0了,为了帮助用户快速掌握 API 3.0的用法,上周分享了《腾讯云 API 3.0实践分享》一文,不少用户都说文章帮助很大,然而又提出了一些新的疑问。那么本文将结合实际用户的需求,再继续进行实践例子的分享,希望对大家有帮助。
腾讯云计算产品团队
2018/07/02
3.1K0
腾讯云 TCCLI 实践分享
腾讯云命令行工具(TCCLI)是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
勤劳的小蜜蜂
2019/08/13
1.5K0
培训认证环境购买:利用接口批量创建CVM
当前GTS学苑,TCS、TBDS、TSF、TDSQL以及TBASE等腾讯云自研产品的培训都需要学员自带环境,在培训过程中使用学员自己的环境进行实操演练。每个产品的培训环境对CVM的数量以及配置都有不同要求。一套产品培训的实操环境少则4台,多则接近20台,而且CVM的配置有差异。学员在环境准备的时候如果使用人工购买的方式,就需要花费较多时间进行环境的准备工作,效率低且繁琐。本文将基于GTS学苑当前环境使用情况,介绍自动化创建CVM的功能,并附录主要的培训产品相关创建机器的代码,供学员自行下载并运行。
苏欣
2022/02/18
3.9K0
腾讯云 TCCLI 实践分享
本文将结合实际用户场景需求,提供相关 TCCLI 的实践例子,希望能帮助大家更快速掌握 TCCLI 的用法。
腾讯云计算产品团队
2018/07/10
10.9K0
利用Python调用云Api实现批量共享云服务器自定义镜像
请注意 为了保障您的账户以及云上资产的安全 请谨慎保管SecretId 与 SecretKey 并定期更新 删除无用权限
小宇-xiaoyu
2022/03/23
3.4K0
通过云API创建云主机,并指定IP地址
蛋蛋
2023/07/14
1K1
从零开始使用腾讯云Java SDK
腾讯云开发者工具套件(SDK)是云 API 3.0 平台的配套工具。本文以 Java SDK 为例,介绍如何使用、调试并接入腾讯云产品 API。
zhijiehou
2021/06/25
12.9K2
基于腾讯云API调用多个接口实现类似Packer打包镜像的效果
11月是个有期待的月份,双十一活动入口:https://cloud.tencent.com/act/pro/double11-2024。
Windows技术交流
2024/11/27
2510
Python操作腾讯云CVM
客户有需求在非工作时间将腾讯云CVM停机,工作时间又开起来,停止可以在系统内写定时任务来,但启动需要在腾讯云平台,就需要使用腾讯云的API来进行操作,还好腾讯云SDK for Python ,简单记录下。
py3study
2020/01/07
3.4K0
腾讯云批量修改某个项目中所有cvm实例的属性,比如安全组等
相关接口:DescribeInstances、ModifyInstancesAttribute
Windows技术交流
2025/01/07
1410
腾讯云 API 最佳实践:保护你的密钥
使用腾讯云 API 时,你需要用密钥来签名你的 API 请求。腾讯云接收到你的请求后,会比对你的签名串和实际请求参数。
zqfan
2018/07/18
15.9K2
利用Python调用云Api实现将cvm安全组配置复制到轻量应用服务器
虽然轻量应用服务器并没有安全组,但是我们可以用云api将cvm的安全组配置复制下来,生成代码调用轻量应用服务器相关api将cvm安全组配置添加到轻量防火墙
小宇-xiaoyu
2022/03/04
1.3K0
Serverless初探
无服务器计算是指开发者在构建和运行应用时无需管理服务器等基础设施,应用被解耦为细粒度的函数,函数是部署和运行的基本单位。用户只为实际使用的资源付费。这些代码完全由事件触发(event-trigger),平台根据请求自动平行调整服务资源,拥有近乎无限的扩容能力,空闲时则没有任何资源在运行。代码运行无状态,可以轻易实现快速迭代、极速部署。
KaliArch
2018/08/31
11.3K0
Serverless初探
利用Python调用云Api实现全地域同步轻量应用服务器密钥并共享给云服务器
请注意 为了保障您的账户以及云上资产的安全 请谨慎保管SecretId 与 SecretKey 并定期更新 删除无用权限
小宇-xiaoyu
2022/03/04
1.7K0
基础网络CVM使用API批量切换私有网络/批量回退基础网络
一、迁移方案基础网络CVM切换到私有网络,有两种方式:1、在控制台切换CVM网络(单次最多批量切换20台),参考文档:云服务器 切换私有网络服务-操作指南-文档中心-腾讯云2、通过API方式切换网络,参考文档:云服务器 修改实例vpc属性-API 文档-文档中心-腾讯云本文以python为例,介绍调腾讯云SDK批量切换基础网络CVM的方法。二、环境准备1、安装python(2.7或3.0以上版本都可以);2、安装腾讯云最新SDK(需最新SDK才支持回退接口):pip install tencentcloud
vic@TX
2022/11/03
2.3K0
腾讯云API弹性公网IP踩坑
由于自己管理的云服务器数量比较多,时不时需要更换IP,在管理台上一下下点击,实在浪费时间,于是就想到了通过API调用的方式,将更换IP一系列动作,全部集成到Python代码里面,实现一行命令,完成IP更换,由于人懒,就先
用户2174879
2018/10/23
32.2K1
腾讯云API弹性公网IP踩坑
CVM使用API批量升级机型
如果有多台CVM需批量修改配置或升级机型,可以调用API来实现,API文档:云服务器 调整实例配置-实例相关接口-API 中心-腾讯云
vic@TX
2023/05/09
4670
免费无限制的DeepSeek-V3/R1调用教程,从此告别“服务器繁忙,请稍后再试”
前几天发布的《DeepSeek:全栈开发者视角下的AI革命者》收到了大家的认可,在CSDN热榜排行榜第一挂满了三天。这也说明DeepSeek这款以工程实践见长的AI引擎,正在重新定义人机协作的边界。当大多数模型还在追求benchmark分数时,DeepSeek已在真实开发场景中沉淀出日均亿行的代码生成轨迹。这场技术跃迁带来的热潮,让开发者工作台的访问曲线始终维持着陡峭的斜率——凌晨三点的流量峰值与服务器熔断提示,构成了算力供给与需求间的现实落差,"服务器繁忙"的冰冷提示却成了开发者们的新痛点。
watermelo37
2025/02/12
1K0
免费无限制的DeepSeek-V3/R1调用教程,从此告别“服务器繁忙,请稍后再试”
腾讯云智能结构化OCR初体验:开启高效数据提取之旅
在数字化浪潮的推动下,企业面临着海量文档数据的处理挑战。传统的人工录入方式不仅效率低下,而且容易出错,严重影响了企业的运营效率。光学字符识别(OCR)技术的出现,为这一难题提供了有效的解决方案。腾讯云智能结构化OCR,凭借其卓越的技术实力和广泛的应用场景,正在成为企业数字化转型的重要助力。
LucianaiB
2025/01/10
1700
腾讯云智能结构化识别~资产管理系统
一个发展中的企业,往往都会有很多固定资产需要管理,而这些固定资产的管理、调拨分配、盘点折旧等流程都是非常繁琐的,常常需要大量的时间去完成,资产管理系统(Asset Management System,简称AMS)是一种专门用于对企业的各类资产进行综合管理的软件系统。它覆盖了从资产采购、登记、追踪、维护、调拨、报废到最终处置的整个生命周期,旨在提高资产管理效率、降低管理成本,并为企业决策提供有力支持。
卖核弹的小男孩
2024/12/19
4113
腾讯云智能结构化识别~资产管理系统
推荐阅读
相关推荐
腾讯云 API 3.0实践分享(下)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档