python open api_容器服务Open API Python SDK使用详解-阿里云开发者社区

阿里云容器服务公测也有一段时间了,这期间接触到不少用户反馈,不知道如何使用openapi进行相关的容器开发。这里我们就准备一篇关于如何使用容器服务Open API进行开发的教程,来讲解容器服务目前已公开的api接口。这里我们不打算自行实现Open API,而采用目前已有的sdk来说明,有兴趣的朋友,也可以尝试在API的接触上自行封装实现SDK。

在本教程过程中,如未特别说明,使用的Python 版本为2.7.10,操作系统为ubuntu 14.04 64位

环境准备

首先我们需要安装sdk的核心库以及容器服务

sudo pip install aliyun-python-sdk-core

sudo pip install aliyun-python-sdk-cs

创建集群

完成准备工作以后,接下来,我们就不如正题了,来讲解第一个api,创建集群。具体关于API的参数细节,可以参考文档

示例代码如下:

from aliyunsdkcore.client import AcsClient

from aliyunsdkcs.request.v20151215 import CreateClusterRequest

import json

client = AcsClient('', '', '')

req = CreateClusterRequest.CreateClusterRequest()

request_body=  '''

{

"password": "",

"instance_type": "",

"name": "",

"size": ,

"network_mode": "",

"data_disk_category": "",

"data_disk_size": ,

"ecs_image_id": ""

}'''

req.set_content(request_body)

req.add_header('X-Acs-Region-Id', '')

status, header, res = self.client.get_response(req)

if status == 202:

js = json.loads(res)

print js['cluster_id']

代码说明:

由于集群创建是异步进行的,所以当服务端接收到客户端的请求以后,就会返回http code 202,同时返回一个json串,里边包含cluster_id和request_id。

当返回的http code 不为202的时候,则会返回一个json串,里边包含了code,message,requestId等字段

获取集群列表

当集群创建完成以后,我们可以通过控制台或者API查询账号下的集群信息。在获取集群列表的API中也可以指定集群的名称进行精确匹配。详解涉及细节请参考查询集群列表文档

示例代码如下:

from aliyunsdkcs.request.v20151215 import DescribeClustersRequest

from aliyunsdkcore.client import AcsClient

import json

client = AcsClient('', '', '')

req = DescribeClustersRequest.DescribeClustersRequest()

req.set_Name('')

status, header, resp = client.get_response(req)

if status == 200:

js = json.loads(resp)

print js

代码说明:

req.set_Name('') 这行代码可以不加,如果忽略的话,则会显示该用户下所有的集群实例列表;若添加,则仅精确匹配该集群名称的集群实例

status == 200 的时候表示服务器返回成功,resp中包含集群相关的字段

当status != 200的时候,则会返回一个失败的json串,里边包含了code,message,requestId等字段

获取集群详情

在很多场景下,我们需要获取某个集群的详细信息,此时则可以通过集群详情的API来实现,通过集群的ID来查询集群的详情,具体可以参考获取集群详情文档

示例代码如下:

from aliyunsdkcs.request.v20151215 import DescribeClusterDetailRequest

from aliyunsdkcore.client import AcsClient

import json

client = AcsClient('', '', '')

req = DescribeClusterDetailRequest.DescribeClusterDetailRequest()

req.set_ClusterId('')

status, header, res = client.get_response(req)

if status == 200:

js = json.loads(res)

print js

对现有集群进行扩容

在集群使用的过程中,由于业务的需要,需要增加或减少(公测期间暂不支持)集群的节点数量,来实现资源利用率的最大化。具体可以参考集群扩容文档

示例代码:

from aliyunsdkcs.request.v20151215 import ScaleClusterRequest

from aliyunsdkcore.client import AcsClient

import json

client = AcsClient('', '', '')

req = ScaleClusterRequest.ScaleClusterRequest()

req.set_ClusterId('')

body = '''

{

"password": "",

"instance_type": "ECS实例类型",

"size": ,

"data_disk_category": "",

"data_disk_size": ,

"ecs_image_id": ""

}'''

req.set_content(body)

status, header, res = self.client.get_response(req)

代码说明:

集群更新操作是异步进行的,当参数校验均通过的情况下,服务端会返回status == 202

关于size参数,为要更新到的最终节点数量。例如之前集群有1个节点,此时size的取值范围为[2,10]。目前支持一个集群最多一个节点

获取集群证书内容

经过前面几节的介绍,我们有了很好的集群控制能力。但是我们还缺少一个很重要的工具,用它来打通我们和容器间的通信能力,那就是集群证书。在集群创建成功以后,服务端会自动生成和用户集群相关的证书,以供用来下载来使用。 具体可以参考获取集群证书内容文档

from aliyunsdkcs.request.v20151215 import DescribeClusterCertsRequest

from aliyunsdkcore.client import AcsClient

import json

client = AcsClient('', '', '')

req = DescribeClusterCertsRequest.DescribeClusterCertsRequest()

req.set_ClusterId('')

status, header, res = self.client.get_response(req)

if status == 200:

js = json.loads(res)

print js['cert']

print js['key']

print js['ca']

代码说明:

当请求返回的status == 200的时候,响应结果里会返回集群证书的内容(json串)

其中的cert是用户公钥证书内容

其中的key是用户私钥证书内容

其中的ca是认证机构证书内容

删除集群

前边介绍了那么多关于集群操作的内容。本节来介绍最后一个关于集群的操作。也是很重要的一个。当集群不在使用的时候,为了避免产生不必要的费用,我们需要及时清理掉不用的集群。具体可以参考删除集群文档

注意:集群的删除是不可逆的,一旦删除所有数据将无法恢复。务必在删除集群前进行数据备份以避免造成不必要的损失。

示例代码:

from aliyunsdkcs.request.v20151215 import DeleteClusterRequest

from aliyunsdkcore.client import AcsClient

import json

client = AcsClient('', '', '')

req = DeleteClusterRequest.DeleteClusterRequest()

req.set_ClusterId('')

status, header, res = self.client.get_response(req)

代码说明:

当status == 202的时候表明集群的删除请求被成功接受,服务端将发起删除操作

总结

通过以上的内容,我们把容器服务的Open API 操作进行了一遍详细的介绍。通过以上的内容,相信大家可以快速的使用容器服务的API进行相应的开发。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
====================当前版本信息==================== 当前版本:V1.0.1 发布日期:2012-08-02 文件大小:839K (压缩后2.90MB) 本程序参考了PHP_SDK_V3.0.2包的设计,包含实现了此包中所有功能。 1、为了照顾到低版本用户使用了.Net 2.0开发,所以没能使用.Net高版本提供的json序列化功能,所以使用了Newtonsoft.Json控件,非常感谢此控件作者,控件相关信息请搜索。 2、SocketObj.cs、Sort.cs两个类以及UrlEncode(.Net自带的方法有大小写问题)来自网络,感谢原作者。 3、hmac-sha1的加密也翻阅了好到网络资料,感谢那些分享经验的大师们。 4、TestOpenAPI项目中Web.config文件设置appid、appkey就可以调试了。 5、在实例文件中有支付相关的实例方法,由于我的应用没能够申请此功能,所以没有经过测试,大家用的时候遇到问题随时沟通。 另外,附调试方式: 1.应用管理 - 编辑应用 - 平台信息 - (左侧的)QQ空间平台信息 2.填写“应用开发地址”这个貌似不支持端口好,所以需要把TestOpenAPI项目配置成本地虚拟目录,总之能使用80端口访问项目即可。 3.填写“高度”我写了600,平台地址不用填(调试阶段)。 4.保存。 5.保存成功后点击左侧的调试按钮就进入QQ空间应用页面。我调试的时候不是直接进入应用,而是往下拉会看见应用信息,点击应用的标题就进入应用了。 开发过程中遇到的问题以及处理办法: 1.签名总是不对,最后发现是appkey配置错了,竟然复制了另外一个应用的,郁闷啊,这个错误聪明的你们是不会犯的啦 2.“1002,no login”错误,当时我是把OpenID和openkey写死了调试的,所以是openkey过期了。官方文档说没开通相应平台也报这个错误。 3.没遇到其他问题,祝你们也要这么顺利哦 ====================文件结构信息==================== TencentOpenAPI项目: SnsNetwork.cs:发送HTTP网络请求类 SnsSigCheck.cs:请求参数签名生成类 SnsStat.cs: 统计上报类 OpenApiV3.cs:OpenAPI访问类 TestOpenAPI项目: Test_OpenApiV3.aspx: 示例代码 sha1.aspx : 脚本实现hmac-sha1加密,用于判断C#程序生成的签名是否正确 本SDk示例代码中并没有列出所有的OpenAPI,腾讯开放平台V3版OpenAPI正在不断增加中,详见API列表: http://wiki.open.qq.com/wiki/API3.0文档 http://wiki.open.qq.com/wiki/API文档 ====================联系我们==================== 腾讯开放平台官网:http://open.qq.com/ 您可以访问我们的资料库获得详尽的技术文档:http://wiki.open.qq.com/wiki/首页 官方论坛下载地址:http://bbs.open.qq.com/forum.php?mod=viewthread&tid=76444&extra=page=1 相比1.0.0的版本《基于QQ OpenAPI V3的.Net SDK(原创)》(http://download.csdn.net/detail/xiyangyu/4470767)新增了支付相关的方法和实例。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值