天天看點

10分鐘上線 - 利用函數計算建構微信小程式的Server端

這篇文章适合所有的想微信小程式開發新手、老鳥以及想準備學習開發微信小程式的程式猿。本文以開發一個類似"語音密碼紅包“小程式為例,向您講解如何使用阿裡雲函數計算快速建構微信小程式的<code>服務端</code>。通過本文,您将會了解以下内容:

<a></a>

在本教程中,我們講解如何利用函數計算一步一步來建構微信小程式的server端,其中小程式參考"密碼紅包", 實作一個簡單版本,該demo中可以展示密碼生成,密碼轉發,密碼語音驗證。

微信語音紅包小程式是基于微信小程式而開發的語音紅包,發起者可以寫下想要讓别人說的話(密碼),并且将錢塞入此紅包中,其他使用者隻要讀出這句話(密碼)就可以獲得紅包。語音紅包可以發到特定的好友、微信群以及朋友圈,朋友需要根據文字密碼說出相應的語音,才能獲得紅包。這種互動行為,在朋友圈或者微信群社交的場景下,可以極大調動互動活躍度,規則簡單友善,體驗趣味十足,密碼的形式豐富多樣(惡搞、示愛、祝賀、說口号、甚至是廣告語),這些都讓密碼紅包一直維持很高的熱度。

生成密碼

10分鐘上線 - 利用函數計算建構微信小程式的Server端

轉發密碼

10分鐘上線 - 利用函數計算建構微信小程式的Server端

錄音驗證密碼

10分鐘上線 - 利用函數計算建構微信小程式的Server端

正常來說,除了少數純用戶端的微信小程式運用,絕大部分的小程式都有自己的server端。使用者開發server端服務,常常面臨開發效率,運維成本高,機器資源彈性伸縮等痛點,而使用Serverless架構可以很好的解決上述問題。下面是傳統架構和Serverless架構的對比:

Item

Serverless

傳統方式搭建服務

維護成本

維護成本低,無需管理伺服器等基礎設施,隻需編寫代碼并上傳,程式員從底層裝置維護中解放出來,隻考慮實際業務邏輯即可。

維護成本高,自行維護伺服器,需要處理伺服器當機、伺服器擴容等一系列底層瑣碎的事情

可用性

可用性高,函數計算為使用者準備彈性、可靠的計算資源,具有根據流量自動scale特性,對有明顯波峰波谷的運用效果奇佳

伺服器故障會對應用服務産生嚴重影響

費用

按需付費,隻為實際使用的計算資源付費,代碼未運作則不産生費用

需要支付伺服器的費用,代碼運作與否都要收費

10分鐘上線 - 利用函數計算建構微信小程式的Server端

方案大緻如上圖所示, 主要分為以下三個子產品:

Login &amp; Auth

10分鐘上線 - 利用函數計算建構微信小程式的Server端

語音識别(包含音頻格式轉換)

ffmpeg進行音頻格式轉換 <a href="https://ai.baidu.com/docs#/ASR-Online-Python-SDK/top">百度語言識别開發文檔</a>

方案圖下部虛線框柱的是可以拓展的子產品,本demo中不展示,使用者可以根據需求接入

比如微信小程式直接上傳檔案到oss儲存,函數計算可以從oss拉取對應的資料做處理;如果需要資料庫功能,可以采用ots

1,利用源碼中的server目錄建立<code>服務端</code>函數,比如函數名為<code>wechatEntry</code>,有以下兩種方案建立函數:

10分鐘上線 - 利用函數計算建構微信小程式的Server端
10分鐘上線 - 利用函數計算建構微信小程式的Server端

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

注意:上面兩種方案建立函數之前都需先把函數中main.py中相關開發配置改成自己申請的,包括<code>微信小程式開發者相關配配置</code>,<code>百度語音識别相關配置</code>

2, 以函數計算作為 API 網關後端服務

<a href="https://help.aliyun.com/document_detail/54788.html?spm=a2c4e.11153959.blogcont279124.16.7c3098feHThGm2">函數計算作為api網關後端服務</a>

api網關中設定函數對應的api分組配置獨立域名

10分鐘上線 - 利用函數計算建構微信小程式的Server端

最後效果圖以及調試界面如下:

10分鐘上線 - 利用函數計算建構微信小程式的Server端
10分鐘上線 - 利用函數計算建構微信小程式的Server端
10分鐘上線 - 利用函數計算建構微信小程式的Server端
10分鐘上線 - 利用函數計算建構微信小程式的Server端

直接用微信小程式開發工具打開,修改對應請求域名和appid即可,打開如下圖所示:

10分鐘上線 - 利用函數計算建構微信小程式的Server端
10分鐘上線 - 利用函數計算建構微信小程式的Server端

利用函數計算可以快速搭建微信小程式的serverless運用,結合oss,ots可以豐富<code>server</code>的功能,免伺服器,免運維,成本低,不用擔心流量,隻需要函數就可以實作,你值的擁有!

可以參考微信小程式中用戶端utils檔案夾下面的uploadAliyun.js

微信小程式使用的圖檔和部分樣式素材來自網際網路,在此聲明,這個demo僅僅是做學習交流展示使用,并沒有涉及商業化,如果原作者看到,請在文章下面留言或者給我發郵件,我注明引用位址。

歡迎大家通過掃碼加入我們使用者群中,搭建過程中有問題或者有其他問題可以在群裡提出來。

10分鐘上線 - 利用函數計算建構微信小程式的Server端