大家好,我是Code乐手马晓龙,欢迎来到我的频道。 接上篇文章,这篇文章介绍一个使用阿里云给api接口加鉴权认证的野路子,不废话直接上方案。
一、方案说明
使用阿里云的函数计算充当API网关,所有接口请求打到函数计算,接口认证鉴权使用阿里云函数计算的认证逻辑。 代码开发可使用阿里云sdk进行快速开发。
flowchart LR;
test[阿里云函数计算]
api1(服务1)
api2(服务2)
api3(服务3)
外部请求-->test
test-->api1
test-->api2
test-->api3
二、搭建流程
1.创建函数计算服务
使用自定义运行时创建函数计算,这个我选用的是falsk + python3.9
2.函数计算编写服务中转逻辑
代码逻辑很简单,我这里是直接进行接口中转,也可以添加一些处理逻辑,像添加一些头信息等。
from flask import Flask
from flask import request
import requests
import os
app = Flask(__name__)
@app.route('/<path:path_url>', methods=['GET', 'POST'])
def hello_world(path_url):
url_prefix = 'api服务地址'
# print(path_url)
# print(request.data)
return requests.post(url_prefix+path_url,headers={token_key:token_secret}, data=request.data).text
if __name__ == '__main__':
app.run(host='0.0.0.0',port=9000)
3.添加http触发器
函数计算的服务默认不对外输出接口服务,需要我们添加一个http触发器使能http服务,并且使能认证功能。
4.提供对外接口
添加完http触发器后,会显示该该http服务的接口地址,有公网地址、内网地址以及测试地址。测试过程中我们可以先禁用掉认证逻辑,这样直接在postman中即可调用该服务进行测试,正式上线后再开启认证服务即可。
5.外部调用方法
http触发器使能认证后,可以使用阿里云的sdk结合access_key和acess_secret进行接口的调用,具体使用方法可以参考阿里云官方文档
三、总结
这样就使用阿里云的函数计算搭建了一个我们的api网关层,不需要自己编写复杂的认证逻辑。当然这是一个野路子的方法,公司中正式上线的服务还是不建议这么粗糙的处理。