1. 程式人生 > >利用函式計算構建微信小程式的Server端

利用函式計算構建微信小程式的Server端

前言

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

demo概覽

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

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

demo客戶端小程式具體效果截圖如下:
  • 生成口令
    image
  • 轉發口令
    image
  • 錄音驗證口令 
    image

傳統伺服器架構 VS Serverless架構

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

ItemServerless傳統方式搭建服務
維護成本維護成本低,無需管理伺服器等基礎設施,只需編寫程式碼並上傳,程式設計師從底層裝置維護中解放出來,只考慮實際業務邏輯即可。維護成本高,自行維護伺服器,需要處理伺服器宕機、伺服器擴容等一系列底層瑣碎的事情
可用性可用性高,函式計算為使用者準備彈性、可靠的計算資源,具有根據流量自動scale特性,對有明顯波峰波谷的運用效果奇佳伺服器故障會對應用服務產生嚴重影響
費用按需付費,只為實際使用的計算資源付費,程式碼未執行則不產生費用需要支付伺服器的費用,程式碼執行與否都要收費

阿里雲函式計算是一個事件驅動的全託管計算服務。通過函式計算,您無需管理伺服器等基礎設施,只需編寫程式碼並上傳。函式計算會為您準備好計算資源,以彈性、可靠的方式執行您的程式碼,並提供日誌查詢,效能監控,報警等功能。藉助於函式計算,您可以快速構建任何型別的應用和服務,無需管理和運維。

Serverless架構詳解

image

方案大致如上圖所示, 主要分為以下三個模組:

  • Login & Auth

微信建議登入時序圖如下, 其中第三方伺服器用FC實現:
image

  • 語音識別(包含音訊格式轉換)
  • 方案圖下部虛線框柱的是可以拓展的模組,本demo中不展示,使用者可以根據需求接入

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

demo開發配置步驟

準備工作:

1,開通阿里雲賬號,同時需要開通的產品有函式計算api閘道器

3,開通微信小程式開發認證,以及百度語音識別

4,從github下載相應的原始碼,裡面client目錄表示客戶端,server表示用於建立函式。

FC端

1,利用原始碼中的server目錄建立服務端函式,比如函式名為wechatEntry,有以下兩種方案建立函式:

  • 利用控制檯打包上傳,設定對應的handler, 函式計算控制檯使用可參考hello world, 特別是控制檯上傳程式碼包建立函式部分。下面是重要步驟截圖:
    image

image

  • 函式計算熟悉fcli的工具的老使用者可以使用函式計算命令列工具fclifcli使用說明
    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分組配置獨立域名
    image
  • 最後效果圖以及除錯介面如下:
    image

image
image

client端
  • 按照微信小程式官方教程,建立對應的小程式賬號以及工程,需要注意的是要把api閘道器中配置的域名新增到微信小程式的開發配置中:
    image
  • 直接用微信小程式開發工具開啟,修改對應請求域名和appid即可,開啟如下圖所示:
    image

image

總結

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

一些補充FAQ, 僅供參考

怎麼除錯fc?

fc可以接入sls,通過sls日誌,可以檢視你函式執行的情況,具體可以參考函式訪問日誌服務

如果錄入的語音檔案很大,時間很長,導致語音識別服務時間很長,怎麼辦?

可以參考函式計算流式處理大檔案的分治思想對語音分割進行流式處理,或者直接選用有流式處理的語音識別的服務。

如果想對語音檔案或者其他檔案做備份處理,怎麼辦?

可以參考微信小程式中客戶端utils資料夾下面的uploadAliyun.js

相關推薦

利用函式計算構建程式Server

前言這篇文章適合所有的想微信小程式開發新手、老鳥以及想準備學習開發微信小程式的程式猿。本文以開發一個類似"語音口令紅包“小程式為例,向您講解如何使用阿里雲函式計算快速構建微信小程式的服務端。通過本文,您將會了解以下內容:demo概覽在本教程中,我們講解如何利用函式計算一步一步來構建微信小程式的server端,

npmvue構建程式

原文連結:https://www.cnblogs.com/zhouyangla/p/9000879.html 前言 16年小程式剛出來的時候,就準備花點時間去學學。無奈現實中手上專案太多,一個接著一個,而且也沒有開發小程式的需求,所以就一拖再拖。 直到上週,終於有一個小程式的專案。如果現

迅速上手:使用taro構建程式基礎教程

前言 由於微信小程式在開發上不能安裝npm依賴,和開發流程上也飽受詬病;Taro 是由京東·凹凸實驗室(aotu.io)傾力打造的 多端開發解決方案,它的api基於react,在本篇文章中主要介紹了使用taro搭建微信小程式的一些步驟和一個簡單demo的實現。 安裝 先全域性安裝@tarojs/cli

Python Flask構建程式訂餐系統 從專案搭建到部署上線 讓你快速掌握Python全棧開發

本課程是python flask+微信小程式完美結合,從專案搭建到騰訊雲部署上線,打造一個全棧訂餐系統。從基礎語法入手,易於掌握,構建MVC架構,增進對小程式和後端API的理解認識。深入淺出帶你進階全棧工程師課程,幫助你快速提升專案經驗,掌握專案開發技巧,提高專案中解決問題的能力。 --

(視訊)Python flask構建程式訂餐系統

第1章 《Python Flask構建微信小程式訂餐系統》課程簡介 本章內容會帶領大家通覽整體架構,功能模組,及學習建議。讓大家在一個清晰的開發思路下,進行後續的學習。同時領著大家登陸https://food.54php.cn(使用微信掃碼二維碼體驗下哦橫須)一起來演示一

Python flask構建程式訂餐系統分享

第1章 《Python Flask構建微信小程式訂餐系統》課程簡介本章內容會帶領大家通覽整體架構,功能模組,及學習建議。讓大家在一個清晰的開發思路下,進行後續的學習。本次課程是嚴格按照商業系統進行架構開發的,從PC管理員端到小程式會員端,從專案搭建到部署上線,通俗易懂。.

免費分享Python flask構建程式訂餐系統

第1章 《Python Flask構建微信小程式訂餐系統》課程簡介本章內容會帶領大家通覽整體架構,功能模組,及學習建議。讓大家在一個清晰的開發思路下,進行後續的學習。本次課程是嚴格按照商業系統進行架構開發的,從PC管理員端到小程式會員端,從專案搭建到部署上線,通俗易懂。.

某課最新Python flask構建程式訂餐系統

第1章 《Python Flask構建微信小程式訂餐系統》課程簡介本章內容會帶領大家通覽整體架構,功能模組,及學習建議。讓大家在一個清晰的開發思路下,進行後續的學習。本次課程是嚴格按照商業系統進行架構開發的,從PC管理員端到小程式會員端,從專案搭建到部署上線,通俗易懂。.

某課最全Python flask構建程式訂餐系統

第1章 《Python Flask構建微信小程式訂餐系統》課程簡介本章內容會帶領大家通覽整體架構,功能模組,及學習建議。讓大家在一個清晰的開發思路下,進行後續的學習。本次課程是嚴格按照商業系統進行架構開發的,從PC管理員端到小程式會員端,從專案搭建到部署上線,通俗易懂。.

無加密分享Python flask構建程式訂餐系統

第1章 《Python Flask構建微信小程式訂餐系統》課程簡介本章內容會帶領大家通覽整體架構,功能模組,及學習建議。讓大家在一個清晰的開發思路下,進行後續的學習。本次課程是嚴格按照商業系統進行架構開發的,從PC管理員端到小程式會員端,從專案搭建到部署上線,通俗易懂。.

某課無加密Python flask構建程式訂餐系統

第1章 《Python Flask構建微信小程式訂餐系統》課程簡介本章內容會帶領大家通覽整體架構,功能模組,及學習建議。讓大家在一個清晰的開發思路下,進行後續的學習。本次課程是嚴格按照商業系統進行架構開發的,從PC管理員端到小程式會員端,從專案搭建到部署上線,通俗易懂

分享某課Python flask構建程式訂餐系統

第1章 《Python Flask構建微信小程式訂餐系統》課程簡介本章內容會帶領大家通覽整體架構,功能模組,及學習建議。讓大家在一個清晰的開發思路下,進行後續的學習。本次課程是嚴格按照商業系統進行架構開發的,從PC管理員端到小程式會員端,從專案搭建到部署上線,通俗易懂。.

某網Python flask構建程式訂餐系統(雲盤下載)

第1章 《Python Flask構建微信小程式訂餐系統》課程簡介本章內容會帶領大家通覽整體架構,功能模組,及學習建議。讓大家在一個清晰的開發思路下,進行後續的學習。本次課程是嚴格按照商業系統進行架構開發的,從PC管理員端到小程式會員端,從專案搭建到部署上線,通俗易懂

Python flask構建程式訂餐系統雲盤分享

第1章 《Python Flask構建微信小程式訂餐系統》課程簡介本章內容會帶領大家通覽整體架構,功能模組,及學習建議。讓大家在一個清晰的開發思路下,進行後續的學習。本次課程是嚴格按照商業系統進行架構開發的,從PC管理員端到小程式會員端,從專案搭建到部署上線,通俗易懂

Python flask構建程式訂餐系統最新分享

第1章 《Python Flask構建微信小程式訂餐系統》課程簡介本章內容會帶領大家通覽整體架構,功能模組,及學習建議。讓大家在一個清晰的開發思路下,進行後續的學習。本次課程是嚴格按照商業系統進行架構開發的,從PC管理員端到小程式會員端,從專案搭建到部署上線,通俗易懂。.

Python flask構建程式訂餐系統完整版分享

第1章 《Python Flask構建微信小程式訂餐系統》課程簡介本章內容會帶領大家通覽整體架構,功能模組,及學習建議。讓大家在一個清晰的開發思路下,進行後續的學習。本次課程是嚴格按照商業系統進行架構開發的,從PC管理員端到小程式會員端,從專案搭建到部署上線,通俗易懂。.

Python flask構建程式訂餐系統更新無加密

第1章 《Python Flask構建微信小程式訂餐系統》課程簡介本章內容會帶領大家通覽整體架構,功能模組,及學習建議。讓大家在一個清晰的開發思路下,進行後續的學習。本次課程是嚴格按照商業系統進行架構開發的,從PC管理員端到小程式會員端,從專案搭建到部署上線,通俗易懂。.

Python flask構建程式訂餐系統(章節已完)

第1章 《Python Flask構建微信小程式訂餐系統》課程簡介本章內容會帶領大家通覽整體架構,功能模組,及學習建議。讓大家在一個清晰的開發思路下,進行後續的學習。本次課程是嚴格按照商業系統進行架構開發的,從PC管理員端到小程式會員端,從專案搭建到部署上線,通俗易懂。.

Python flask構建程式訂餐系統(更新完整)

第1章 《Python Flask構建微信小程式訂餐系統》課程簡介本章內容會帶領大家通覽整體架構,功能模組,及學習建議。讓大家在一個清晰的開發思路下,進行後續的學習。本次課程是嚴格按照商業系統進行架構開發的,從PC管理員端到小程式會員端,從專案搭建到部署上線,通俗易懂

2018最新完整Python flask構建程式訂餐系統

「 女程式媛崛起 」 今天這篇文,意義特殊,是我的一個迷妹程式媛-祈澈姑娘寫的,她發給我後,我看了通篇,感覺寫的很真實,而且又是記錄女程式媛的日常,比較少見,所以我很有興趣,相信大家也很有興趣。 熟悉我的人都知道,我很少轉別人文字,基本都是堅持原創,我更喜歡真實的人和事,