摘要:本文以開發一個類似語音口令紅包小程序為例,向您講解如何使用阿里云函數計算快速構建微信小程序的服務端。
前言
這篇文章適合所有的想微信小程序開發新手、老鳥以及想準備學習開發微信小程序的程序猿。本文以開發一個類似"語音口令紅包“小程序為例,向您講解如何使用阿里云函數計算快速構建微信小程序的服務端。通過本文,您將會了解以下內容:
demo概覽
傳統服務器架構 VS Serverless架構
Serverless架構詳解
demo開發配置步驟
demo概覽在本教程中,我們講解如何利用函數計算一步一步來構建微信小程序的server端,其中小程序參考"口令紅包", 實現一個簡單版本,該demo中可以展示口令生成,口令轉發,口令語音驗證。
微信語音紅包小程序是基于微信小程序而開發的語音紅包,發起者可以寫下想要讓別人說的話(口令),并且將錢塞入此紅包中,其他用戶只要讀出這句話(口令)就可以獲得紅包。語音紅包可以發到特定的好友、微信群以及朋友圈,朋友需要根據文字口令說出相應的語音,才能獲得紅包。這種互動行為,在朋友圈或者微信群社交的場景下,可以極大調動互動活躍度,規則簡單方便,體驗趣味十足,口令的形式豐富多樣(惡搞、示愛、祝賀、說口號、甚至是廣告語),這些都讓口令紅包一直維持很高的熱度。
生成口令
轉發口令
錄音驗證口令
傳統服務器架構 VS Serverless架構正常來說,除了少數純客戶端的微信小程序運用,絕大部分的小程序都有自己的server端。用戶開發server端服務,常常面臨開發效率,運維成本高,機器資源彈性伸縮等痛點,而使用Serverless架構可以很好的解決上述問題。下面是傳統架構和Serverless架構的對比:
Item | Serverless | 傳統方式搭建服務 |
---|---|---|
維護成本 | 維護成本低,無需管理服務器等基礎設施,只需編寫代碼并上傳,程序員從底層設備維護中解放出來,只考慮實際業務邏輯即可。 | 維護成本高,自行維護服務器,需要處理服務器宕機、服務器擴容等一系列底層瑣碎的事情 |
可用性 | 可用性高,函數計算為用戶準備彈性、可靠的計算資源,具有根據流量自動scale特性,對有明顯波峰波谷的運用效果奇佳 | 服務器故障會對應用服務產生嚴重影響 |
費用 | 按需付費,只為實際使用的計算資源付費,代碼未運行則不產生費用 | 需要支付服務器的費用,代碼運行與否都要收費 |
阿里云函數計算是一個事件驅動的全托管計算服務。通過函數計算,您無需管理服務器等基礎設施,只需編寫代碼并上傳。函數計算會為您準備好計算資源,以彈性、可靠的方式運行您的代碼,并提供日志查詢,性能監控,報警等功能。借助于函數計算,您可以快速構建任何類型的應用和服務,無需管理和運維。
Serverless架構詳解方案大致如上圖所示, 主要分為以下三個模塊:
Login & Auth
微信建議登錄時序圖如下, 其中第三方服務器用FC實現:
語音識別(包含音頻格式轉換)
ffmpeg進行音頻格式轉換
百度語言識別開發文檔
方案圖下部虛線框柱的是可以拓展的模塊,本demo中不展示,用戶可以根據需求接入
比如微信小程序直接上傳文件到oss保存,函數計算可以從oss拉取對應的數據做處理;如果需要數據庫功能,可以采用otsdemo開發配置步驟
1,開通阿里云賬號,同時需要開通的產品有函數計算, api網關
2,購買獨立域名,同時需對域名備案,以及購買阿里云免費ssl證書,購買步驟可參考免費申請阿里云DV SSL證書
3,開通微信小程序開發認證,以及百度語音識別
4,從github下載相應的源碼,里面client目錄表示客戶端,server表示用于創建函數。
1,利用源碼中的server目錄創建服務端函數,比如函數名為wechatEntry,有以下兩種方案創建函數:
利用控制臺打包上傳,設置對應的handler, 函數計算控制臺使用可參考hello world, 特別是控制臺上傳代碼包創建函數部分。下面是重要步驟截圖:
函數計算熟悉fcli的工具的老用戶可以使用函數計算命令行工具fcli, fcli使用說明
fcli function create -f wechatEntry -h main.handler -d server -t python2.7 -s wechat
注意:上面兩種方案創建函數之前都需先把函數中main.py中相關開發配置改成自己申請的,包括微信小程序開發者相關配配置,百度語音識別相關配置
2, 以函數計算作為 API 網關后端服務
api網關支持https服務,具體可以參考api網關支持https
函數計算作為api網關后端服務
api網關中設置函數對應的api分組配置獨立域名
最后效果圖以及調試界面如下:
按照微信小程序官方教程,創建對應的小程序賬號以及工程,需要注意的是要把api網關中配置的域名添加到微信小程序的開發配置中:
直接用微信小程序開發工具打開,修改對應請求域名和appid即可,打開如下圖所示:
利用函數計算可以快速搭建微信小程序的serverless運用,結合oss,ots可以豐富server的功能,免服務器,免運維,成本低,不用擔心流量,只需要函數就可以實現,你值的擁有!
github源碼地址 一些補充FAQ, 僅供參考fc可以接入sls,通過sls日志,可以查看你函數運行的情況,具體可以參考函數訪問日志服務
可以參考函數計算流式處理大文件的分治思想對語音分割進行流式處理,或者直接選用有流式處理的語音識別的服務。
可以參考微信小程序中客戶端utils文件夾下面的uploadAliyun.js
聲明微信小程序使用的圖片和部分樣式素材來自互聯網,在此聲明,這個demo僅僅是做學習交流展示使用,并沒有涉及商業化,如果原作者看到,請在文章下面留言或者給我發郵件,我注明引用地址。
歡迎大家通過掃碼加入我們用戶群中,搭建過程中有問題或者有其他問題可以在群里提出來。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/95608.html
摘要:摘要阿里云函數計算是一個事件驅動的全托管計算服務。微信小程序是一種不需要下載安裝即可使用的應用,它可以在微信內被便捷地獲取和傳播。本文以開發一個類似語音口令紅包小程序為例,向您講解如何使用阿里云函數計算快速構建微信小程序的服務端。 摘要: 阿里云函數計算是一個事件驅動的全托管計算服務。通過函數計算,您無需管理服務器等基礎設施,只需編寫代碼并上傳。微信小程序是一種不需要下載安裝即可使用的...
摘要:摘要阿里云函數計算是一個事件驅動的全托管計算服務。微信小程序是一種不需要下載安裝即可使用的應用,它可以在微信內被便捷地獲取和傳播。本文以開發一個類似語音口令紅包小程序為例,向您講解如何使用阿里云函數計算快速構建微信小程序的服務端。 摘要: 阿里云函數計算是一個事件驅動的全托管計算服務。通過函數計算,您無需管理服務器等基礎設施,只需編寫代碼并上傳。微信小程序是一種不需要下載安裝即可使用的...
摘要:本文以開發一個類似語音口令紅包小程序為例,向您講解如何使用阿里云函數計算快速構建微信小程序的服務端。 前言 這篇文章適合所有的想微信小程序開發新手、老鳥以及想準備學習開發微信小程序的程序猿。本文以開發一個類似語音口令紅包小程序為例,向您講解如何使用阿里云函數計算快速構建微信小程序的服務端。通過本文,您將會了解以下內容: demo概覽 傳統服務器架構 VS Serverless架構 S...
摘要:春招結果五月份了,春招已經接近尾聲,因為到了周五晚上剛好有空,所以簡單地記錄一下自己的春招過程。我的春招從二月初一直持續到四月底,截止今天,已經斬獲唯品會電商前端研發部大數據與威脅分析事業部京東精銳暑假實習生的騰訊的是早上打過來的。 春招結果 五月份了,春招已經接近尾聲,因為到了周五晚上剛好有空,所以簡單地記錄一下自己的春招過程。我的春招從二月初一直持續到四月底,截止今天,已經斬獲唯品...
摘要:昨晚月日微信應用號萌萌噠的化身小程序才剛開始宣布內測,今天朋友圈就刷屏了真是一石激起千層浪,各種分析預測文章鋪天蓋地而來,讓人應接不暇。微信小程序實現了千千萬萬前端工程師開發的夢想,想不火都難。 showImg(https://segmentfault.com/img/remote/1460000006981816?w=900&h=500); 昨晚(9月21日)微信應用號萌萌噠的化身—...
閱讀 2864·2021-09-27 13:35
閱讀 630·2021-09-23 11:22
閱讀 2901·2019-08-30 15:54
閱讀 1616·2019-08-29 16:27
閱讀 2475·2019-08-29 15:05
閱讀 2359·2019-08-23 18:11
閱讀 3529·2019-08-23 16:32
閱讀 2948·2019-08-23 14:56