阿里云 API调用实践(python语言)
1、结论:阿里云的SDK开发,其实就是远程调用API,python的代码就是一个外壳,核心是封装成一个http报文,利用json格式,进行RPC调用。
2、SDK调用API的套路如下:
# -*- coding: utf8 -*-
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.acs_exception.exceptions import ClientException
from aliyunsdkcore.acs_exception.exceptions import ServerException
from aliyunsdkecs.request.v20140526 import DescribeInstancesRequest
from aliyunsdkecs.request.v20140526 import StopInstanceRequest
# 创建AcsClient实例
client = AcsClient(
"<your-access-key-id>",
"<your-access-key-secret>",
"<your-region-id>"
);
# 创建request,并设置参数
request = DescribeInstancesRequest.DescribeInstancesRequest()
request.set_PageSize(10)
# 发起API请求并显示返回值
response = client.do_action_with_exception(request)
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、实例展示:
# -*- coding: utf8 -*-
from aliyunsdkcore.client import AcsClient
from aliyunsdkvpc.request.v20160428 import DescribeVpcsRequest # 创建AcsClient实例
client = AcsClient(
"xxxxxx",
"xxxxxx",
"cn-beijing"
);
# 创建request,并设置参数
request = DescribeVpcsRequest.DescribeVpcsRequest() # 发起API请求并显示返回值
response = client.do_action_with_exception(request)
print response
这个例子是,显示区域cn-beijing中所有的VPC,执行结果如下:

再举一个例子,创建VPC,指定名称为 ecs-001
# -*- coding: utf8 -*-
from aliyunsdkcore.client import AcsClient
from aliyunsdkvpc.request.v20160428 import CreateVpcRequest
# 创建AcsClient实例
client = AcsClient(
"xxxxxx",
"xxxxxx",
"cn-beijing"
);
# 创建request,并设置参数
request = CreateVpcRequest.CreateVpcRequest()
request.set_VpcName("ecs-001")
# 发起API请求并显示返回值
response = client.do_action_with_exception(request)
print response
执行结果:

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

(2)通过查看源码文件,可知传入的格式就是JSON的,所以,返回值也是JSON格式的,所以,不需要专门再加JSON解析器。
(3)账号的访问码是和用户console界面是等同的效应,所以,访问码要安全保管,最好是使用后就删除。
下面就是上面通过SDK创建的VPC,在console上的显示内容(实际测试时,调用了两次创建vpc的文件)

参考文档:
https://help.aliyun.com/document_detail/53090.html?spm=5176.164075.850376.30.4eadf93fvlAg4r
2、
阿里云 API调用实践(python语言)的更多相关文章
- 【阿里云API】 阿里云API调用的若干说明
阿里云API 为了监控我们使用的一些阿里云产品,需要些一些脚本,定时调用这些脚本来获得相关阿里云产品的信息. ■ 概述 调用阿里云API大约分成两类方法,一个是直接从HTTP协议开始,自己根据阿里云的 ...
- 阿里云api调用做简单的cmdb
阿里云api调用做简单的cmdb 1 步骤 事实上就是调用阿里api.获取可用区,比方cn-hangzhou啊等等.然后在每一个区调用api 取ecs的状态信息,最好写到一个excel里面去.方便排序 ...
- Python 调用阿里云 API 收集 ECS 数据
#!/usr/bin/env python # coding: utf-8 # author: Wang XiaoQiang ''' 功能介绍: 1.调用阿里云API,收集所有区域 ECS 信息 2. ...
- 阿里云 API 签名机制的 Python 实现
在调用阿里云 API 的时候,最让人头疼的就是 API 的签名(Signature)机制,阿里云在通用文档中也有专项说明,但是仅仅有基于 Java 的实现代码示例.所以这里基于 Python 来分析下 ...
- 浅析阿里云API网关的产品架构和常见应用场景
自上世纪60年代计算机网络发展开始,API(Application Programming Interface )随之诞生,API即应用程序接口,是实现系统间衔接的桥梁.时至今日,API市场已经形成了 ...
- 阿里云API网关(9)常见问题
网关指南: https://help.aliyun.com/document_detail/29487.html?spm=5176.doc48835.6.550.23Oqbl 网关控制台: https ...
- 阿里云API网关!
API 网关(API Gateway)提供高性能.高可用的 API 托管服务,帮助用户对外开放其部署在 ECS.容器服务等阿里云产品上的应用,提供完整的 API 发布.管理.维护生命周期管理.用户只需 ...
- 利用用阿里云API实现DDNS
前言 之前动态域名解析是用的是腾达路由器上集成的第三方动态解析服务花生壳,解析费用一年40元.后来觉得域名前缀不好,想换掉,花生壳需要重新购买新的域名解析费用,增加1条或者2条动态解析无所谓,万一以后 ...
- 阿里云API网关(11)外网访问 阿里云API网关内定义的API步骤:
网关指南: https://help.aliyun.com/document_detail/29487.html?spm=5176.doc48835.6.550.23Oqbl 网关控制台: https ...
随机推荐
- Python爬虫——Python 岗位分析报告
前两篇我们分别爬取了糗事百科和妹子图网站,学习了 Requests, Beautiful Soup 的基本使用.不过前两篇都是从静态 HTML 页面中来筛选出我们需要的信息.这一篇我们来学习下如何来获 ...
- 阿里云服务器公网Ip外网无法访问
拥有了自己的服务器后,发现需要各种配置,之前应用公司的服务器的时候,一般通过内网访问,或者外网访问时,很多配置其他人员都已经配置好了,但是现在在自己的服务器上发布自己的网站的时候,才发现事情并没有自己 ...
- C#中为什么会出现空静态构造方法的写法
再过几个小时,就要回家过春节了,今天说些简单点的东西,大家在看C#代码的时候,一定会对这样的写法非常迷茫:在一个类中会出现一个空的静态构造方法.这不是多此一举吗,这样做的目的是什么?今天我就来说说这个 ...
- JavaDBF:保存行情实时数据到DBF文件
JavaDBF.jar其实很早都不再更新了,在日新月异的科技圈算得上远古上神的jar包,早该身归混沌了. 但我们的项目要用到,因为之前做的大宗期货交易行情的分析文件依然是dbf文件,没有办法,还得用 ...
- metasploit无法连接postgresql
注:倒数两条可以不做. 问题地址:https://askubuntu.com/questions/50621/cannot-connect-to-postgresql-on-port-5432 设置好 ...
- 【转】CGI
CGI是什么 (一): CGI是Common Gateway Interface 的简称.是一个用于定Web服务器与外部程序之间通信方式的标准,使得外部程序能生成HTML.图像或者其他内容,而服务器处 ...
- oracle收集ash和awr性能报告方法
1.收集ash报告 [oracle@1 ~]$ sqlplus / as sysdbaSQL*Plus: Release 12.1.0.2.0 Production on Fri Sep 21 18: ...
- Vue生命周期详解
Vue所有的生命周期钩子自动绑定在this上下文到实例中,因此你可以访问数据,对属性和方法进行运算.这意味着你不能使用箭头函数来定义一个生命周期方法.这是因为箭头函数绑定了父上下文,因此this与你期 ...
- C++版- Leetcode 3. Longest Substring Without Repeating Characters解题报告
Leetcode 3. Longest Substring Without Repeating Characters 提交网址: https://leetcode.com/problems/longe ...
- idea启动TOMCAT html 乱码
在运行/调试 配置对话框的Startup/Connection面板中, 勾选Pass environment variables. 并添加一个environment variable, Name填 J ...