您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關怎么構建基于Serverless 架構的小程序,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
為了支撐大量的小程序,服務端面臨的挑戰有:
大量的小程序是不活躍的,傳統的至少一臺服務器的方式會造成資源浪費;
在活動高峰期小程序的調用量激增,要求服務端能夠快速進行彈性伸縮。
而小程序開發者往往是客戶端/前端的開發者,更多的精力在開發業務代碼與應用的快速上線上,而無心顧暇服務端的運維操作。
阿里云 函數計算 是一個全托管 Serverless 計算服務,讓開發者無需管理服務器等基礎設施,只需編寫和上傳代碼,就能夠構建可靠、彈性、安全的服務。
函數計算彈性、免運維、高效、安全的特性十分適合作為小程序的服務端。
函數計算封裝了一套小程序服務端模板,幫助小程序開發者快速搭建基于函數計算的小程序。
使用這個模板搭建小程序應用具有以下特點:
運維效率高: 無需管理服務器,部署函數即可上線
開發效率高: 基于封裝好的數據接口,直接開發業務代碼
零費用啟動: 服務端基于函數計算,數據庫采用表格存儲,都是按量付費并且有較大的免費額度
一個完整的支付寶小程序需要以下幾個元素:
支付寶 App:是支付寶小程序的載體,運行在用戶手機端
小程序客戶端:是小程序展現給用戶的操作頁面
小程序服務端:是小程序的邏輯處理單元,比如對用戶進行身份認證以及對數據進行存取
支付寶服務端:是支付寶 App 的邏輯處理單元,包含用戶的身份信息
函數計算封裝了一套小程序服務端模板,幫助小程序開發者快速搭建基于函數計算的小程序。下面介紹服務端模板的工作流程。
除了基礎設施的運維問題,服務端主要解決兩個通用問題:
身份認證: 服務端提供的 API 如何對客戶端的請求進行鑒權?客戶端的信息如果泄露如何保證數據安全?
數據訪問: 客戶端如何進行數據庫操作和文件操作?
這是每一個小程序開發都會遇到的共性的問題,可以通過一些框架或者模板來避免重復建設。因此我們基于函數計算開發了一個小程序應用模板,解決了這些通用的問題,讓開發者能夠專注在業務邏輯上,快速開發上線自己的小程序。
客戶端小程序通過支付寶 App 的 API,獲得 authCode,這個過程會在 App 中彈出用戶授權框;
小程序客戶端向小程序服務端發起 createSession 請求,用于初始化的身份認證;
小程序服務端將 authCode 傳給支付寶服務端,支付寶服務端校驗 authCode,返回 accessToken;
小程序服務端根據收到的 accessToken 生成一個 sessionId 和一個 STS token,在服務端記錄這 2 個信息然后把它們返回給客戶端。STS token 是用于訪問服務端函數的憑證,而 sessionId 作為前面認證成功而建立的會話信息,通過這 個sessionId 可以識別當前請求的用戶信息;
小程序客戶端再次需要獲取數據,帶著證明自己身份的 sessionId 向小程序服務端發起獲取數據請求;
小程序服務端首先根據 sessionId 獲取用戶身份信息,再根據用戶信息獲取相關數據;
將用戶數據返回給小程序客戶端。
準備工作:注冊支付寶開發者賬號 如果您尚未注冊支付寶開發者賬號,使用支付寶賬號登錄 螞蟻金服開放平臺,并完成開發者身份注冊。詳細信息請參見 開發者入駐說明。
創建支付寶小程序應用
使用支付寶賬號登錄 螞蟻金服開放平臺進入開發者中心 創建小程序,填寫基本信息,并記錄下 APPID
生成密鑰,需要在小程序服務端與支付寶服務端配置密鑰,對交易數據進行雙方校驗
將公鑰配置在 【設置】->【開發設置】-【接口加簽方式】,并記錄私鑰
準備工作
開通 函數計算,表格存儲,日志服務
部署應用
進入控制臺應用中心,選擇 Mini App Todo List Server Template
模板,填寫剛才記錄的 APPID 與 PrivateKey,為 DBInstance/LogProject 取個自定義的名字(如果名字已被占用,會報 Already Exists 的錯誤),部署應用
準備工作
下載并安裝支付寶 小程序開發者工具。
搭建應用
npm install git://github.com/aliyun/fc-nodejs-sdk.git#mini-app --save
修改server.js開頭定義的變量,這些值會在 服務端模板 部署成功后自動輸出:
TODO LIST 客戶端代碼在 mini-app-todo-list-client
在小程序項目根目錄下,安裝 fc-nodejs-sdk:
信息 | 說明 |
---|---|
fcAccountId | 阿里云AccountId |
fcRegion | 函數部署的區域,例如cn-shanghai |
fcServiceName | 函數計算服務名稱 |
sessionFunctionName | session函數的名稱,例如session |
dbFunctionName | db函數的名稱,例如db |
由于 fc-nodejs-sdk 使用了ES6語法,在發布小程序時,需要在小程序項目的根目錄下,新建一個文件mini.project.json,填入以下內容:
{ "node_modules_es6_whitelist": [ "@alicloud/fc2" ] }
至此,開發工作已經完成,您可以調試,上線您的小程序啦。
以上就是怎么構建基于Serverless 架構的小程序,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。