10分钟上线

Wesley13
• 阅读 458

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

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

前言

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

demo概览

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

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

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

  • 生成口令
    10分钟上线
  • 转发口令
    10分钟上线
  • 录音验证口令 
    10分钟上线

传统服务器架构 VS Serverless架构

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

Item

Serverless

传统方式搭建服务

维护成本

维护成本低,无需管理服务器等基础设施,只需编写代码并上传,程序员从底层设备维护中解放出来,只考虑实际业务逻辑即可。

维护成本高,自行维护服务器,需要处理服务器宕机、服务器扩容等一系列底层琐碎的事情

可用性

可用性高,函数计算为用户准备弹性、可靠的计算资源,具有根据流量自动scale特性,对有明显波峰波谷的运用效果奇佳

服务器故障会对应用服务产生严重影响

费用

按需付费,只为实际使用的计算资源付费,代码未运行则不产生费用

需要支付服务器的费用,代码运行与否都要收费

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

Serverless架构详解

10分钟上线

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

  • Login & Auth

微信建议登录时序图如下, 其中第三方服务器用FC实现:
10分钟上线

  • 语音识别(包含音频格式转换)

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

  • 方案图下部虚线框柱的是可以拓展的模块,本demo中不展示,用户可以根据需求接入

比如微信小程序直接上传文件到oss保存,函数计算可以从oss拉取对应的数据做处理;如果需要数据库功能,可以采用ots

demo开发配置步骤

准备工作:

1,开通阿里云账号,同时需要开通的产品有函数计算api网关

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

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

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

FC端

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

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

10分钟上线

  • 函数计算熟悉fcli的工具的老用户可以使用函数计算命令行工具fclifcli使用说明
    fcli function create -f wechatEntry -h main.handler -d server -t python2.7 -s wechat

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

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

10分钟上线
10分钟上线

client端

  • 按照微信小程序官方教程,创建对应的小程序账号以及工程,需要注意的是要把api网关中配置的域名添加到微信小程序的开发配置中:
    10分钟上线
  • 直接用微信小程序开发工具打开,修改对应请求域名和appid即可,打开如下图所示:
    10分钟上线

10分钟上线

总结

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

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
小森森 小森森
1年前
计划助手V1.0-微信小程序(QQ小程序)-源代码分享
疫情期间在家感觉好无聊啊,于是利用空闲时间做了一个用来记录和管理小目标时间的小程序,命名为《小沙漏》。QQ版本小程序同步上线,QQ小程序叫《时间小沙漏》,欢迎大家前来体验,后期也会添加其他的新功能哦【区别】:微信小程序的代码与QQ小程序的源码是不一样的。微信小程序的源码基于微信小程序云开发,需要在有网络的情况下使用,具有同步功能,所有记录在删除小
胡哥有话说 胡哥有话说
3年前
喜大普奔,微信终于支持外网打开小程序啦!
前言千呼万唤始出来,微信小程序终于支持以URLScheme的形式从外部唤起了。longlongago我们只能在微信内的网页中使用微信开发标签小程序跳转按钮
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
梦
3年前
微信小程序new Date()转换时间异常问题
微信小程序苹果手机页面上显示时间异常,安卓机正常问题image(https://imghelloworld.osscnbeijing.aliyuncs.com/imgs/b691e1230e2f15efbd81fe11ef734d4f.png)错误代码vardate'2021030617:00:00'vardateT
Easter79 Easter79
2年前
thinkcmf+jsapi 实现微信支付
首先从小程序端接收订单号、金额等参数,然后后台进行统一下单,把微信支付的订单号返回,在把订单号发送给前台,前台拉起支付,返回参数后更改支付状态。。。回调publicfunctionnotify(){$wechatDb::name('wechat')where('status',1)find();
Easter79 Easter79
2年前
Taro小程序自定义顶部导航栏
微信自带的顶部导航栏是无法支持自定义icon和增加元素的,在开发小程序的时候自带的根本满足不了需求,分享一个封装好的组件,支持自定义icon、扩展dom,适配安卓、ios、h5,全面屏。我用的是京东的Taro多端编译框架写的小程序,原生的也可以适用,用到的微信/taro的api做调整就行,实现效果如下。!在这里插入图片描述(https://i
Wesley13 Wesley13
2年前
5G消息与微信小程序互联互通?北京国都互联这么做……
最近微信小程序上线了一个超级流量的新入口URLScheme,据微信官网介绍,scheme码适用于短信、邮件、外部网页等拉起小程序的业务场景。通过小程序页面的URLScheme,可以在短信、邮件或微信外部的网页中打开微信小程序。意义在于将微信流量生态延伸到微信以外渠道,进一步完善了小程序和外部渠道互通的营销场景。北京国都互联第一时
helloworld_40038029 helloworld_40038029
10个月前
2023版全新高质量商业级小程序全栈项目实战
微信小程序是一种轻量级的应用程序,它具有简单、高效、易用等特点。在学习微信小程序开发的过程中,了解其基础语法非常重要。本文将介绍微信小程序中的基础语法。
乐和 乐和
1个月前
2023版全新高质量商业级小程序全栈项目实战(完结)
2023版全新高质量商业级小程序全栈项目实战(完结)download》chaoxingit.com/2393/如何学习高质量商业级小程序全栈项目实战来构建微信小程序对于微信小程序的概念和目录结构,下面是一些基本信息:概念:微信小程序是一种基于微信平台的应用