共计 1987 个字符,预计需要花费 5 分钟才能阅读完成。
作者 | 萧起 阿里云云原生团队
本文整顿自 《Serverless 技术公开课》,“Serverless”公众号后盾回复“入门”,即可获取 Serverless 系列文章 PPT。
导读: 本节课程次要分为三个局部,基本概念中介绍基于函数计算的 WebAPI 与一般的 WebAPI 的区别及劣势;开发流程中介绍如何在函数计算的控制台进行 WebAPI 的开发;操作演示中会实例演示函数计算 WebAPI 的开发过程。
基本概念
常见的 WebAPI 架构如上图所示,次要包含客户端(浏览器)、服务器、数据库,WebAPI 由服务器提供,同时服务器要实现负载平衡、登录鉴权的相干操作。
当客户端流量疾速增大时,服务器端只能通过程度扩大加机器的形式来减少进步服务能力。
这种惯例模式次要有两点局限性:
- 技术同学除了开发业务代码,有大量的服务器运维老本,来保障服务的稳定性、可用性,技术同学要花费很多工夫进行运维工作,占用开发工夫,升高我的项目研发效率。
- 流量忽然减少时,须要程度扩大加机器,弹性的响应能力差,扩容速度往往要数十分钟,无奈实现秒级极速扩容,导致一段时间内的服务能力有余。同时当流量变少时,难以做到及时缩容,造成机器的老本节约。
基于函数计算的 WebAPI 架构如上图所示,与惯例的 WebAPI 架构相比,客户端和数据库未发生变化,但服务器变动微小,次要体现在:
- 之前须要开发团队保护的路由模块以及鉴权模块都将接入服务商提供的 API 网关零碎以及鉴权零碎,开发团队无须再保护这两局部的业务代码,只须要继续保护相干规定即可。
- 在这个构造下,业务代码也被拆分成了函数粒度,不同函数示意不同的性能。
- 咱们曾经看不到服务器的存在,是因为 Serverless 的目标是让使用者只关注本人的业务逻辑即可,所以一部分平安问题、资源调度问题(例如用户量暴增、如何实现主动扩容等)全都交给云厂商负责。
- 绝对于传统我的项目而言,传统我的项目无论是否有用户拜访,服务都在运行中,都是有老本收入,而 Serverless 而言,只有在用去发动申请时,函数才会被激活并执行,且会按量免费,能够实现在有流量的时候才有反对,没有流量的时候就没有收入,相对来说,老本会进一步升高。
开发流程
1. 登录函数计算控制台,创立利用
能够通过两种形式来创立利用,如果是已有的 Web 我的项目,能够抉择上图中的第一种形式:“常见 Web 利用”;对于新我的项目则举荐应用第二种形式:“基于模板创立利用”。咱们这里应用模板形式,抉择基于 Python 的 Web 利用。
模板能够当做利用脚手架,抉择适宜的模板,能够主动实现相干依赖资源的创立,如角色、OSS、域名网关等,升高开发成本。
2. 新建函数
在利用下,创立函数,咱们是开发 WebAPI,所以抉择“HTTP”函数,这种函数会将指定的 http 申请作为触发器,来调度对应函数的执行。
函数新建好之后,是个返回 helloWorld 的 demo,咱们在此基础上来开发咱们的业务逻辑。
首先介绍下上图代码中的 handler 函数,这个函数是入口函数,http 触发器接管到调用后会通过这个入口来启动整个函数。函数有两个入参,environ 和 start_response:
- environ
environ 中次要蕴含两局部内容:http 申请的入参和函数执行上下文 fcContext,函数上下文参数中蕴含一些函数运行时的信息(例如 request id、长期 AK),您在代码中能够应用这些信息。信息类型是 FCContext。
- start_response
该参数次要用于生成 http 申请的 response。
3. 配置触发器,绑定域名
在新建函数时会主动创立一个 http 触发器,这个触发器的门路是“aliyun.com”的一个测试门路,只能用于测试,实在的利用须要通过自定义域名将实在域名与函数绑定,这样拜访指定域名时,对应函数就会被触发执行。
4. 日志与监控
在每个函数编辑页面,日志和监控服务,函数的每次执行都会生成惟一的 requestId,日志中通过 requestId 进行查问,看到本次函数执行的所有日志。
操作演示
点击链接即可观看演示视频:https://developer.aliyun.com/lesson_2024_18999
课程举荐
为了更多开发者可能享受到 Serverless 带来的红利,这一次,咱们集结了 10+ 位阿里巴巴 Serverless 畛域技术专家,打造出最适宜开发者入门的 Serverless 公开课,让你即学即用,轻松拥抱云计算的新范式——Serverless。
点击即可收费观看课程:https://developer.aliyun.com/learning/roadmap/serverless
Serverless 公众号,公布 Serverless 技术最新资讯,会集 Serverless 技术最全内容,关注 Serverless 趋势,更关注你落地实际中的遇到的困惑和问题。