API管理或定制如何开发ECS

  介绍

今天就跟大家聊聊有关API管理或定制如何开发ECS,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

弹性管理ECS实例

使用API管理ECS实例,您需要能访问ECS资源的API密钥(AccessKey ID和AccessKey秘密)。为了保证云服务的安全,您需要创建一个能访问ECS资源的RAM用户,获取该用户的AccessKey密钥,并使用这个RAM用户和API管理ECS实例。

以下是获取内存用户AccessKey密钥的操作步骤:

创建内存用户并获取AccessKey密钥。

直接给内存用户授权,授予RAM用户管理云服务器服务(ECS)的权限。

首先确保您已经具备Python的运行时,本文中使用的Python版本为2.7 +。

pip安装aliyun-python-sdk-ecs

如果提示您没有权限,请切换sudo继续执行。

sudo pip安装aliyun-python-sdk-ecs

本文使用的SDK版本为2.1.2。


创建文件hello_ecs_api。py。为了使用SDK,首先实例化AcsClient对象,这里需要内存用户的AccessKey ID和AccessKey秘密。

AccessKey ID和AccessKey秘密是RAM用户访问阿里云ECS服务API的密钥,具有该账户完全的权限,请妥善保管。

从aliyunsdkcore导入客户端   从aliyunsdkecs.request.v20140526。DescribeInstancesRequest进口DescribeInstancesRequest   从aliyunsdkecs.request.v20140526。DescribeRegionsRequest进口DescribeRegionsRequest   解释水平理论=client.AcsClient(& # 39;你的访问密钥id # 39;, & # 39;你的访问密钥秘密# 39;,& # 39;cn-beijing& # 39;)

完成实例化后可以进行第一个应用的开发。查询当前账号支持的地域列表。具体的文档参见查询可用地域列表。

def hello_aliyun_regions ():   请求=DescribeRegionsRequest ()   响应=_send_request(请求)   region_list=response.get(& # 39;地区# 39;). get(& # 39;地区# 39;)   维护响应并不是没有   断言region_list不是没有   结果=地图(_print_region_id region_list)   logging.info(“区域列表:% s",结果)   def _print_region_id(项):   region_id=item.get (“RegionId")   返回region_id   def _send_request(请求):   request.set_accept_format (& # 39; json # 39;)   试一试:   response_str=clt.do_action(请求)   logging.info (response_str)   response_detail=json.loads (response_str)   返回response_detail   除了例外e:   logging.error (e)   hello_aliyun_regions ()

在命令行运行python hello_ecs_api。py会得到当前支持的地区列表。类似的输出如下:

[u # 39; cn-shenzhen& # 39; u # 39; ap-southeast-1& # 39;,你# 39;cn-qingdao& # 39;,你# 39;cn-beijing& # 39;,你# 39;cn-shanghai& # 39;,   u # 39; us-east-1& # 39; u # 39; cn-hongkong& # 39; u # 39; me-east-1& # 39; u # 39; ap-southeast-2& # 39; u # 39; cn-hangzhou& # 39; u # 39; eu-central-1& # 39;   u # 39; ap-northeast-1& # 39; u # 39; us-west-1& # 39;]

查询实例列表和查询地区列表非常类似,替换入参对象为DescribeInstancesRequest即可,更多的查询参数参考查询实例列表。

def list_instances ():   请求=DescribeInstancesRequest ()   响应=_send_request(请求)   如果响应没有没有:   instance_list=response.get(& # 39;实例# 39;). get(& # 39;实例# 39;)   结果=地图(_print_instance_id instance_list)   logging.info (“% s"目前的地区包括实例,结果)   def _print_instance_id(项):   即instance_id=item.get (& # 39; InstanceId& # 39;);   返回即instance_id

输出结果为如下:

目前的地区包括实例[u # 39; i - * * * * & # 39;,你# 39;i - * * * * & # 39; & # 39;]

更多的API参考ECS API概览,您可以尝试作一个查询磁盘列表,将实例的参数替换为DescribeDisksRequest。

以上操作完整的代码示例如下所示。

#=utf - 8编码   #如果不安装使用python sdk & # 39; sudo pip安装aliyun-python-sdk-ecs& # 39;   #如果python sdk安装使用& # 39;sudo pip安装,升级aliyun-python-sdk-ecs& # 39;   #确保2.1.2 sdk版本,您可以使用命令& # 39;脉冲显示aliyun-python-sdk-ecs& # 39;检查   进口json   导入日志   从aliyunsdkcore进口端   从aliyunsdkecs.request.v20140526。DescribeInstancesRequest进口DescribeInstancesRequest   从aliyunsdkecs.request.v20140526。DescribeRegionsRequest进口DescribeRegionsRequest   #配置日志输出格式化程序,如果你想将输出保存到文件,   #添加“文件名=& # 39;ecs_invoke.log& # 39;“datefmt之后。=logging.INFO logging.basicConfig(水平,   格式=& # 39;% (asctime) %(文件名)年代(线:% (lineno) d) % (levelname) % & # 39;(消息),   datefmt=& # 39; %, % d % b % Y % H: M %: % & # 39;   解释水平理论=client.AcsClient(& # 39;你的访问密钥id # 39;, & # 39;你的访问密钥秘密# 39;,& # 39;cn-beijing& # 39;)   #王坚开放api示例api列表。   def hello_aliyun_regions ():   请求=DescribeRegionsRequest ()   响应=_send_request(请求)   如果响应没有没有:   region_list=response.get(& # 39;地区# 39;). get(& # 39;地区# 39;)   维护响应并不是没有   断言region_list不是没有   结果=地图(_print_region_id region_list)   logging.info(“区域列表:% s",结果)   #输出实例拥有当前的地区。   def list_instances ():   请求=DescribeInstancesRequest ()   响应=_send_request(请求)   如果响应没有没有:   instance_list=response.get(& # 39;实例# 39;). get(& # 39;实例# 39;)   结果=地图(_print_instance_id instance_list)   logging.info (“% s"目前的地区包括实例,结果)   def _print_instance_id(项):   即instance_id=item.get (& # 39; InstanceId& # 39;);   返回即instance_id   def _print_region_id(项):   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

API管理或定制如何开发ECS