02 python 自动化运维~API接口介绍 && 使用阿里云sdk接口调用获取信息
1. API的一些基础知识
1.1. 什么是API
API 不同接口,都有不同的作用。应结合实际需求掌握该接口的功能。
API(Application Programming Interface,应用程序接口),是软件开发者将某个做好功能开放给外部人员使用的一个窗口。外部人员无需访问源码或理解内部代码处理
细节,只需要按API规定的格式传递一些参数,即可获取期望的数据或执行期望的操作。
1.2. API请求的组成
什么是请求,API接口的调用,是通过一个URL地址传输的,URL打开一次就是一次请求,刷新页面,又算一次请求。
请求API接口,其实就是打开访问接口的URL,此URL在请求时需要几个组成部分:
1.API接口地址
即API接口服务公开给外部访问的地址
2.请求方式
常用的有Get 、Post 和其他方式,这取决于API接口服务,无需理解,他们支持什么,我们选择对应的方式即可。
常见的请求方式:https://blog.csdn.net/estrusKing/article/details/122807134
3.请求的参数
API接口根据你传递的参数处理对应的数据。例如,phone手机号就是一个参数
4.授权认证方式
在请求API时,不是谁请求都会处理,需要对您的请求做认证。常见的是 token 认证和key(有时还有会结合sign)。这些信息API服务商都会给到您。
5.Header
请求过程中需要传递的表头信息,是系统级的参数,包含存储认证信息Token的参数。一般情况下我们不需要配置,需要配置时,API文档会特别说明。
6.Body
同样也是存储传递的数据,它在请求方式为Post时才需要配置。常用来存储表单信息,有时授权认证的参数也可以存储在这里。
例如,通过API接口,将一个表单数据新增到第三方系统,表单的字段名称和字段值 存放在Body中。
总体来说:调用API 接口时,需要三部分:
请求的API URL地址
传递的参数
授权身份认证
1.3. 常见API及使用
全网最全的api接口合集:https://zhuanlan.zhihu.com/p/314212747
聚合数据官网:https://www.juhe.cn/docs/index/otherid/1
我的api 使用记录:https://dashboard.juhe.cn/data/index/my
我的查询
[root@localhost ~]# curl "http://apis.juhe.cn/mobile/get?phone=1331513&dtype=&key=c376d0abae.....12143078d"
{"resultcode":"200","reason":"Return Successd!","result":{"province":"河北","city":"石家庄","areacode":"0311","zip":"050000","company":"电信","card":""},"error_code":0}
[root@localhost ~]# curl "http://apis.juhe.cn/simpleWeather/query?city=北京&key=675619b.....5891802b4186"
{"reason":"查询成功!","result":{"city":"北京","realtime":{"temperature":"29","humidity":"53","info":"阴","wid":"02","direct":"东北风","power":"3级","aqi":"49"},"future":[{"date":"2022-06-21","temperature":"24\/35℃","weather":"多云转小雨","wid":{"day":"01","night":"07"},"direct":"西南风转东北风"},{"date":"2022-06-22","temperature":"22\/29℃","weather":"小雨转多云","wid":{"day":"07","night":"01"},"direct":"东风"},{"date":"2022-06-23","temperature":"23\/35℃","weather":"晴","wid":{"day":"00","night":"00"},"direct":"西风转北风"},{"date":"2022-06-24","temperature":"23\/34℃","weather":"晴","wid":{"day":"00","night":"00"},"direct":"北风转南风"},{"date":"2022-06-25","temperature":"25\/36℃","weather":"晴转多云","wid":{"day":"00","night":"01"},"direct":"东南风转西南风"}]},"error_code":0}
3. 调用阿里SDK创建阿里云主机
阿里云开发工具包SDK:https://develop.aliyun.com/tools/sdk?#/python
参考:https://www.cnblogs.com/niansir/p/9617688.html
3.1 获取阿里云AK 信息
- AK 信息简介
企业上云时,云平台会为企业提供一个仓库,企业在云上的资源(比如云存储、云虚拟机、云数据库、……)都会放在这个仓库里。AK是给企业应用程序开启这个仓库的门钥匙,
它和人类用的密码是类似的。保管好AK不被泄露是客户必需的责任。还记得两年前的CodeSpaces是怎样破产的吗?就是因为上云之后AK泄露了,黑客勒索未遂,结果彻底删除
CodeSpaces的所有数据以及数据备份。
参考链接:https://developer.aliyun.com/article/55947
- 创建AK
3.2 Linux安装python && pip
一.卸载python命令:
rpm -qa|grep python|xargs rpm -ev --allmatches --nodeps ##强制删除已安装程序及其关联
whereis python |xargs rm -frv ##删除所有残余文件 ##xargs,允许你对输出执行其他某些命令
whereis python ##验证删除,返回无结果
1.安装gcc等依赖
yum -y install gcc gcc-c++ autoconf automake zlib zlib-devel openssl openssl-devel pcre pcre-devel libffi-devel
2.下载python3.7.8
wget https://www.python.org/ftp/python/3.7.8/Python-3.7.8.tgz
3.解压
tar -zxvf Python-3.7.8.tgz
4.进入目录
cd Python-3.7.8
5.检测
mkdir -p /usr/local/python3
./configure --prefix=/usr/local/python3
6.编译执行
make && make install
============以上就已经安装完成了,如果特殊情况没有安装pip的可以参考下面===========
yum -y install epel-release
yum -y install python-pip
pip --version
建立链接:
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
PATH变量设置
cat >> /etc/profile << EOF
> PATH=$PATH:$HOME/bin:/usr/local/python3/bin
> export PATH
> EOF
source /etc/profile
pip报错解决
pip 更新可能需要多次,或者换国内源更新。默认使用国外源
https://blog.csdn.net/Cynthialearn/article/details/124754685
3.3 SDK的安装
#@Python3版本为例
pip3 install aliyun-python-sdk-core
pip3 install aliyun-python-sdk-ecs
如果多次不能安装,切换国内源
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple aliyun-python-sdk-core
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple aliyun-python-sdk-ecs
3.4 使用阿里云api创建ECS
其中
3.4.1 阿里云api 及相关知识
- api
阿里云api概述:https://help.aliyun.com/document_detail/311601.html
阿里云所有api查询:https://next.api.aliyun.com/api-tools/demo?spm=api-workbench.home.0.0.4bb31e0fsuErcq
云服务器 ECS(Ecs)/实例相关接口用例: https://next.api.aliyun.com/api-tools/demo/Ecs/899173a5-e00b-4046-93d2-8038a64211bb
- 计费相关
云服务器ECS的计费概述:https://help.aliyun.com/document_detail/25398.htm?spm=a2c4g.11186623.0.0.5b49274d6jlj0A
如何根据业务场景选择实例规格:https://help.aliyun.com/document_detail/58291.htm?spm=a2c4g.11186623.0.0.5b4931c91UaiES
3.4.2 使用Python&阿里云SDK管理ECS安全组
阿里云运行实例:可直接借鉴使用代码,减少学习成本,直接创建/查询ECS。
https://next.api.aliyun.com/api/Ecs/2014-05-26/CreateInstance?lang=PYTHON¶ms={}