• 阿里云 API调用实践(python语言)


    1、结论:阿里云的SDK开发,其实就是远程调用API,python的代码就是一个外壳,核心是封装成一个http报文,利用json格式,进行RPC调用。

    2、SDK调用API的套路如下:

     1 # -*- coding: utf8 -*-
     2 from aliyunsdkcore.client import AcsClient
     3 from aliyunsdkcore.acs_exception.exceptions import ClientException
     4 from aliyunsdkcore.acs_exception.exceptions import ServerException
     5 from aliyunsdkecs.request.v20140526 import DescribeInstancesRequest
     6 from aliyunsdkecs.request.v20140526 import StopInstanceRequest
     7 # 创建AcsClient实例
     8 client = AcsClient(
     9    "<your-access-key-id>", 
    10    "<your-access-key-secret>",
    11    "<your-region-id>"
    12 );
    13 # 创建request,并设置参数
    14 request = DescribeInstancesRequest.DescribeInstancesRequest()
    15 request.set_PageSize(10)
    16 # 发起API请求并显示返回值
    17 response = client.do_action_with_exception(request)
    18 print response

    解释一下,

    (1)前面几行就是,引入开发包,然后就是定义一个client实例,这个实例中必须输入请求者的身份信息,也就是AK/SK,其实就是请求key和对应的密码key,这个是从管理控制台中可以获取到。

    另外,地域码,就是每个地域有一个编码:https://help.aliyun.com/document_detail/40654.html?spm=a2c4g.11186623.2.5.Mcaxmp

    (2)根据请求的目的,构建一个请求参数,例如第14行、15行的意思就是创建一个ECS实例,并且设置返回信息最长为10页。

    这个请求的名称是关键,第15行的参数设置也很关键,他们共同组成请求的内容。为后面的请求提交做准备。

    (3)发起请求。

    前面把请求参数构造完成后,这里就是发生请求,并且等待结果。

    3、实例展示:

     1 # -*- coding: utf8 -*-
     2 from aliyunsdkcore.client import AcsClient
     3 from aliyunsdkvpc.request.v20160428 import DescribeVpcsRequest
     4 
     5 # 创建AcsClient实例
     6 client = AcsClient(
     7    "xxxxxx", 
     8    "xxxxxx",
     9    "cn-beijing"
    10 );
    11 # 创建request,并设置参数
    12 request = DescribeVpcsRequest.DescribeVpcsRequest()
    13 
    14 # 发起API请求并显示返回值
    15 response = client.do_action_with_exception(request)
    16 print response

    这个例子是,显示区域cn-beijing中所有的VPC,执行结果如下:

     再举一个例子,创建VPC,指定名称为 ecs-001

     1 # -*- coding: utf8 -*-
     2 from aliyunsdkcore.client import AcsClient
     3 from aliyunsdkvpc.request.v20160428 import CreateVpcRequest
     4 # 创建AcsClient实例
     5 client = AcsClient(
     6    "xxxxxx", 
     7    "xxxxxx",
     8    "cn-beijing"
     9 );
    10 # 创建request,并设置参数
    11 request = CreateVpcRequest.CreateVpcRequest()
    12 request.set_VpcName("ecs-001")
    13 # 发起API请求并显示返回值
    14 response = client.do_action_with_exception(request)
    15 print response

    执行结果:

     4、经验总结:

    (1)要使用python进行API调用,就需要知道API中参数有哪些,这个可以通过打开对应API的python代码文件查看到。如下:

     (2)通过查看源码文件,可知传入的格式就是JSON的,所以,返回值也是JSON格式的,所以,不需要专门再加JSON解析器。

    (3)账号的访问码是和用户console界面是等同的效应,所以,访问码要安全保管,最好是使用后就删除。

    下面就是上面通过SDK创建的VPC,在console上的显示内容(实际测试时,调用了两次创建vpc的文件)

    参考文档:

    1、阿里云SDK开发指南

    https://help.aliyun.com/document_detail/53090.html?spm=5176.164075.850376.30.4eadf93fvlAg4r

    2、

  • 相关阅读:
    用算法合并数组
    Redis各个数据类型的使用场景
    seesion工作原理
    自删除道指令程序
    uva 1335
    《生活在Linux中》之:使用Bash就是使用Emacs
    手动配置S2SH三大框架报错(三)
    数据和C
    IOS之【地图MapKit】
    我工作这几年(五)-- Android学习4.5月总结(一)
  • 原文地址:https://www.cnblogs.com/zhouhaibing/p/8679955.html
Copyright © 2020-2023  润新知