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

news/2025/2/26 7:35:15

摘要: 阿里云函数计算是一个事件驱动的全托管计算服务。通过函数计算,您无需管理服务器等基础设施,只需编写代码并上传。微信小程序是一种不需要下载安装即可使用的应用,它可以在微信内被便捷地获取和传播。 当微信小程序遇见serverless,他们会产生奇妙火花,利用函数计算可以快速搭建微信小程序的serverle.

点此查看原文:click.aliyun.com/m/41953/

前言
这篇文章适合所有的想微信小程序开发新手、老鸟以及想准备学习开发微信小程序的程序猿。本文以开发一个类似”语音口令红包“小程序为例,向您讲解如何使用阿里云函数计算快速构建微信小程序的服务端。

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

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

demo客户端小程序具体效果截图如下:

生成口令

转发口令

录音验证口令

传统服务器架构 VS Serverless架构

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

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

Serverless架构详解


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

Login & Auth
微信建议登录时序图如下, 其中第三方服务器用FC实现:

语音识别(包含音频格式转换)
ffmpeg进行音频格式转换
百度语言识别开发文档

方案图下部虚线框柱的是可以拓展的模块,本demo中不展示,用户可以根据需求接入
比如微信小程序直接上传文件到oss保存,函数计算可以从oss拉取对应的数据做处理;如果需要数据库功能,可以采用ots

demo开发配置步骤
准备工作:
1,开通阿里云账号,同时需要开通的产品有函数计算, api网关

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

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

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

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

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

函数计算熟悉fcli的工具的老用户可以使用函数计算命令行工具fcli

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

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

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

api网关支持https服务
函数计算作为api网关后端服务

api网关中设置函数对应的api分组配置独立域名

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


client端

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

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

总结

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

扫码获取更多资讯:




http://www.niftyadmin.cn/n/4582752.html

相关文章

安卓 eclipse 项目 迁移 android studio gradle 配置 热修复 annotations注解

repositories {mavenCentral()mavenLocal()jcenter() }buildscript {repositories {mavenCentral()mavenLocal()jcenter()}dependencies {classpath com.android.tools.build:gradle:2.1.0// annotations 注解classpath com.neenbedankt.gradle.plugins:android-apt:1.4// tin…

python 中正则表达式的使用

正则表达式的定义 正则表达式(re)(Regular Expression)。正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字…

app混淆加固+防止反编译+360加固

android studio混淆加密,没有使用第三方加密后的效果好,混淆加密还能看到大体的混淆包名,使用了那些框架 而使用了360加固后,全部看不到了 下图是360加固window操作IDE,非常好用! 然后用反编译软件反编译后…

GitHub:上传文件到GitHub

摘要:文件怎样通过git上传到GitHub上?怎样让文件永久的保存呢,GitHub是一个非常好的代码托管平台,可以上传,也可以下载。我使用的工具是git。首先打开某一个要上传的文件夹,右键git bash一下第一步&#xf…

android 7.0 浏览器 拦截适配 shouldOverrideUrlLoading

浏览器使用第三方开源github框架: //浏览器 https://github.com/Justson/AgentWeb compile com.just.agentweb:agentweb:1.2.6 7.0路径拦截存在适配问题shouldOverrideUrlLoading会分别访问不同参数的同一方法: 7.0以上系统访问 TargetApi(Build.VERSION_CODES.LOL…

GreenDao 兼容升级,保留旧数据的---全方面解决方案

作者:林冠宏 / 指尖下的幽灵 掘金:https://juejin.im/user/587f0dfe128fe100570ce2d8 博客:http://www.cnblogs.com/linguanh/ GitHub : https://github.com/af913337456/ 腾讯云专栏: https://cloud.tencent.com/deve…

android studio 混淆使用,测试百分百可用

转载请申明 http://blog.csdn.net/wuqilianga/article/details/77533599 在主app中开启混淆,一般情况下release开启就行了,这个压缩和混淆开启影响速度 buildTypes {release {signingConfig signingConfigs.releaseminifyEnabled truezipAlignEnabled t…

Ubuntu下调整时区时间

Ubuntu下调整时区时间 学习了:http://blog.csdn.net/jintiaozhuang/article/details/38583031 进行了tzselect错误的修复 学习了:https://www.cnblogs.com/php-linux/p/6018625.html http://blog.csdn.net/u014743697/article/details/53579380 http://b…