Serverless AI训练营:课时10:典型案例3:十分钟搭建弹性可扩展的 Web API(一)
课时10:典型案例3:十分钟搭建弹性可扩展的 Web API(一)
内容介绍:
一、基本概念
二、WebAPI的开发流程
三、操作演示
一、基本概念
1. 基本概念中介绍了基于函数计算的 WebAPI 和普通 WebAPI 有什么区别并有哪些优势
2. 开发流程中介绍了如何在函数计算的控制台进行 WebAPI 的开发
3. 操作演示中会根据实例演示函数计算 WebAPI 的开发过程
常见 WebAPI 的架构如图所示,包括客户端、服务端、数据库,WebAPI由服务器提供,同时服务器还要完成负载均衡、登录健全、日志监控等相关操作。
当客户端流量快速增加时服务端只能通过水平扩展加机器的方式来增加自建的服务能力,这种常规模式主要分析两点局限性:
1. 技术同学除了开发业务代码,有大量的服务器运维成本,来保证服务的稳定性、可用性
2. 流量增加时只能水平扩展加机器,响应速度慢、成本高。
基于函数计算的 WebAPI 架构中与常规的 WebAPI 架构相比,客户端数据库未发生变化,主要的变化体现在服务器端,主要体现有:
1. 之前需要开发团队维护的路由模块以及健全模块都将接入服务商提供的API网关系统以及健全系统,开发团队无需再维护这两部分的代码,只需要维护相关的规则即可。
2. 在这样的结构下,服务器端的业务代码被拆分为一个个的函数,不同的函数就代表了不同的功能。
上图中可以看到,在函数计算的 WebAPI 架构中已经没用了服务器的存在这是因为 Serverless 的目的就是为了让使用者只关注自己的业务逻辑即可。也就是每个业务逻辑对应的函数,所以像安全问题、资源调度问题全部交给云厂商来负责。
相对于传统的项目而言,传统项目无论是否有用户访问,服务器都在运行当中,这将造成比较大的成本支出,而 Serverless 而言,只有在用户去用,发起请求时,函数才会被激活执行。并且按照调用次数收费,相对来说可以在有流量的时候才有支出,没有流量的时候就没用支出。成本会进行进一步的降低。
二、WebAPI的开发流程
第一步登录控制台并创建应用。创建应用的方式有两种:
1. 如果现有WebAPI应用,直接创建应用将代码打包上传。
2. 通过模板来创建应用,模板可以理解为相当于一个脚手架,可以快速的帮助完成一些基础配置,比如说权限、角色、网关一系列的配置。
完成创建应用后就是在应用下创建函数,主要支持事件函数、HTTP函数、模板函数,本次选择HTTP函数
创建完函数之后就开始具体开发业务逻辑,业务逻辑开发完之后就要配置一个触发器。因为是WebAPI的方式,所以触发器就是HTTP的请求,在这里可以指定域名来设定。
最后可以通过函数计算的监控来进行调试,以及服务上线之后使用量的监控情况
三、实际演示整个WebAPI的开发流程。
首先进入管理控制台,选择应用中心,基于模板创建应用
选择基于 Python 的应用,配置并部署,上述提到通过模板方式来创建应用相当于一个脚手架,会把底层所依赖的资源创建好,只有基于资源去开发函数就可以,可以提高开发效率。
创建 HTTP 函数,选择 PythonAPI,语言选择 Python3.0
请求方式选择 GET