今天就跟大家聊聊有关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 nullAPI管理或定制如何开发ECS