本篇文章给大家分享的是有关怎么构建基于Serverless 架构的小程序,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
前言
为了支撑大量的小程序,服务端面临的挑战有:
而小程序开发者往往是客户端/前端的开发者,更多的精力在开发业务代码与应用的快速上线上,而无心顾暇服务端的运维操作。
阿里云 函数计算 是一个全托管 Serverless 计算服务,让开发者无需管理服务器等基础设施,只需编写和上传代码,就能够构建可靠、弹性、安全的服务。
函数计算弹性、免运维、高效、安全的特性十分适合作为小程序的服务端。
解决方案
函数计算封装了一套小程序服务端模板,帮助小程序开发者快速搭建基于函数计算的小程序。
使用这个模板搭建小程序应用具有以下特点:
小程序的工作流程
一个完整的支付宝小程序需要以下几个元素:
支付宝 App:是支付宝小程序的载体,运行在用户手机端
小程序客户端:是小程序展现给用户的操作页面
小程序服务端:是小程序的逻辑处理单元,比如对用户进行身份认证以及对数据进行存取
支付宝服务端:是支付宝 App 的逻辑处理单元,包含用户的身份信息
函数计算封装了一套小程序服务端模板,帮助小程序开发者快速搭建基于函数计算的小程序。下面介绍服务端模板的工作流程。
FC 服务端模板工作流程
除了基础设施的运维问题,服务端主要解决两个通用问题:
身份认证: 服务端提供的 API 如何对客户端的请求进行鉴权?客户端的信息如果泄露如何保证数据安全?
数据访问: 客户端如何进行数据库操作和文件操作?
这是每一个小程序开发都会遇到的共性的问题,可以通过一些框架或者模板来避免重复建设。因此我们基于函数计算开发了一个小程序应用模板,解决了这些通用的问题,让开发者能够专注在业务逻辑上,快速开发上线自己的小程序。

客户端小程序通过支付宝 App 的 API,获得 authCode,这个过程会在 App 中弹出用户授权框;
小程序客户端向小程序服务端发起 createSession 请求,用于初始化的身份认证;
小程序服务端将 authCode 传给支付宝服务端,支付宝服务端校验 authCode,返回 accessToken;
小程序服务端根据收到的 accessToken 生成一个 sessionId 和一个 STS token,在服务端记录这 2 个信息然后把它们返回给客户端。STS token 是用于访问服务端函数的凭证,而 sessionId 作为前面认证成功而建立的会话信息,通过这 个sessionId 可以识别当前请求的用户信息;
小程序客户端再次需要获取数据,带着证明自己身份的 sessionId 向小程序服务端发起获取数据请求;
小程序服务端首先根据 sessionId 获取用户身份信息,再根据用户信息获取相关数据;
将用户数据返回给小程序客户端。
搭建流程
注册支付宝小程序
搭建小程序服务端
搭建小程序客户端
信息 | 说明 |
---|
fcAccountId | 阿里云AccountId |
fcRegion | 函数部署的区域,例如cn-shanghai |
fcServiceName | 函数计算服务名称 |
sessionFunctionName | session函数的名称,例如session |
dbFunctionName | db函数的名称,例如db |
由于 fc-nodejs-sdk 使用了ES6语法,在发布小程序时,需要在小程序项目的根目录下,新建一个文件mini.project.json,填入以下内容:
{
"node_modules_es6_whitelist": [
"@alicloud/fc2"
]
}
至此,开发工作已经完成,您可以调试,上线您的小程序啦。
以上就是怎么构建基于Serverless 架构的小程序,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注天达云行业资讯频道。