10分钟上线 - 利用函数计算构建微信小程序的Server端

前言

这篇文章适合全部的想微信小程序开发新手、老鸟以及想准备学习开发微信小程序的程序猿。本文以开发一个相似"语音口令红包“小程序为例,向您讲解如何使用阿里云函数计算快速构建微信小程序的服务端。经过本文,您将会了解如下内容:html

demo概览

在本教程中,咱们讲解如何利用函数计算一步一步来构建微信小程序的server端,其中小程序参考"口令红包", 实现一个简单版本,该demo中能够展现口令生成,口令转发,口令语音验证。python

微信语音红包小程序是基于微信小程序而开发的语音红包,发起者能够写下想要让别人说的话(口令),而且将钱塞入此红包中,其余用户只要读出这句话(口令)就能够得到红包。语音红包能够发到特定的好友、微信群以及朋友圈,朋友须要根据文字口令说出相应的语音,才能得到红包。这种互动行为,在朋友圈或者微信群社交的场景下,能够极大调动互动活跃度,规则简单方便,体验趣味十足,口令的形式丰富多样(恶搞、示爱、祝贺、说口号、甚至是广告语),这些都让口令红包一直维持很高的热度。
demo客户端小程序具体效果截图以下:
  • 生成口令

image

  • 转发口令

image

  • 录音验证口令

image

传统服务器架构 VS Serverless架构

正常来讲,除了少数纯客户端的微信小程序运用,绝大部分的小程序都有本身的server端。用户开发server端服务,经常面临开发效率,运维成本高,机器资源弹性伸缩等痛点,而使用Serverless架构能够很好的解决上述问题。下面是传统架构和Serverless架构的对比:git

Item Serverless 传统方式搭建服务
维护成本 维护成本低,无需管理服务器等基础设施,只需编写代码并上传,程序员从底层设备维护中解放出来,只考虑实际业务逻辑便可。 维护成本高,自行维护服务器,须要处理服务器宕机、服务器扩容等一系列底层琐碎的事情
可用性 可用性高,函数计算为用户准备弹性、可靠的计算资源,具备根据流量自动scale特性,对有明显波峰波谷的运用效果奇佳 服务器故障会对应用服务产生严重影响
费用 按需付费,只为实际使用的计算资源付费,代码未运行则不产生费用 须要支付服务器的费用,代码运行与否都要收费

阿里云函数计算是一个事件驱动的全托管计算服务。经过函数计算,您无需管理服务器等基础设施,只需编写代码并上传。函数计算会为您准备好计算资源,以弹性、可靠的方式运行您的代码,并提供日志查询,性能监控,报警等功能。借助于函数计算,您能够快速构建任何类型的应用和服务,无需管理和运维。程序员

Serverless架构详解

image

方案大体如上图所示, 主要分为如下三个模块:github

  • Login & Auth
微信建议 登陆时序图以下, 其中第三方服务器用FC实现:
image
  • 语音识别(包含音频格式转换)
ffmpeg进行音频格式转换
百度语言识别开发文档
  • 方案图下部虚线框柱的是能够拓展的模块,本demo中不展现,用户能够根据需求接入
好比微信小程序直接上传文件到oss保存,函数计算能够从oss拉取对应的数据作处理;若是须要数据库功能,能够采用ots

demo开发配置步骤

准备工做:

1,开通阿里云帐号,同时须要开通的产品有函数计算, api网关数据库

2,购买独立域名,同时需对域名备案,以及购买阿里云免费ssl证书,购买步骤可参考免费申请阿里云DV SSL证书小程序

3,开通微信小程序开发认证,以及百度语音识别后端

4,从github下载相应的源码,里面client目录表示客户端,server表示用于建立函数。微信小程序

FC端

1,利用源码中的server目录建立服务端函数,好比函数名为wechatEntry,有如下两种方案建立函数:api

  • 利用控制台打包上传,设置对应的handler, 函数计算控制台使用可参考hello world, 特别是控制台上传代码包建立函数部分。下面是重要步骤截图:

image

image

  • 函数计算熟悉fcli的工具的老用户可使用函数计算命令行工具fcli, fcli使用说明

fcli function create -f wechatEntry -h main.handler -d server -t python2.7 -s wechat

注意:上面两种方案建立函数以前都需先把函数中main.py中相关开发配置改为本身申请的,包括 微信小程序开发者相关配配置百度语音识别相关配置

2, 以函数计算做为 API 网关后端服务

image

  • 最后效果图以及调试界面以下:

image
image
image

client端
  • 按照微信小程序官方教程,建立对应的小程序帐号以及工程,须要注意的是要把api网关中配置的域名添加到微信小程序的开发配置中:

image

  • 直接用微信小程序开发工具打开,修改对应请求域名和appid便可,打开以下图所示:

image
image

总结

利用函数计算能够快速搭建微信小程序的serverless运用,结合oss,ots能够丰富server的功能,免服务器,免运维,成本低,不用担忧流量,只须要函数就能够实现,你值的拥有!

github源码地址

一些补充FAQ, 仅供参考

怎么调试fc?

fc能够接入sls,经过sls日志,能够查看你函数运行的状况,具体能够参考函数访问日志服务

若是录入的语音文件很大,时间很长,致使语音识别服务时间很长,怎么办?

能够参考函数计算流式处理大文件的分治思想对语音分割进行流式处理,或者直接选用有流式处理的语音识别的服务。

若是想对语音文件或者其余文件作备份处理,怎么办?

能够参考微信小程序中客户端utils文件夹下面的uploadAliyun.js

声明

  • 微信小程序使用的图片和部分样式素材来自互联网,在此声明,这个demo仅仅是作学习交流展现使用,并无涉及商业化,若是原做者看到,请在文章下面留言或者给我发邮件,我注明引用地址。
  • 欢迎你们经过扫码加入咱们用户群中,搭建过程当中有问题或者有其余问题能够在群里提出来。

    image

相关文章
相关标签/搜索