今天就跟大家聊聊有關(guān)怎么輕松構(gòu)建基于Serverless 架構(gòu)的小程序,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括遂川網(wǎng)站建設(shè)、遂川網(wǎng)站制作、遂川網(wǎng)頁制作以及遂川網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,遂川網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到遂川省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
函數(shù)計(jì)算封裝了一套小程序服務(wù)端模板,幫助小程序開發(fā)者快速搭建基于函數(shù)計(jì)算的小程序。
使用這個(gè)模板搭建小程序應(yīng)用具有以下特點(diǎn):
運(yùn)維效率高:無需管理服務(wù)器,部署函數(shù)即可上線;
開發(fā)效率高:基于封裝好的數(shù)據(jù)接口,直接開發(fā)業(yè)務(wù)代碼;
零費(fèi)用啟動(dòng):服務(wù)端基于函數(shù)計(jì)算,數(shù)據(jù)庫采用表格存儲(chǔ),都是按量付費(fèi)并且有較大的免費(fèi)額度。
一個(gè)完整的支付寶小程序需要以下幾個(gè)元素:
支付寶 App:是支付寶小程序的載體,運(yùn)行在用戶手機(jī)端;
小程序客戶端:是小程序展現(xiàn)給用戶的操作頁面;
小程序服務(wù)端:是小程序的邏輯處理單元,比如對(duì)用戶進(jìn)行身份認(rèn)證以及對(duì)數(shù)據(jù)進(jìn)行存?。?/p>
支付寶服務(wù)端:是支付寶 App 的邏輯處理單元,包含用戶的身份信息。
函數(shù)計(jì)算封裝了一套小程序服務(wù)端模板,幫助小程序開發(fā)者快速搭建基于函數(shù)計(jì)算的小程序。下面介紹服務(wù)端模板的工作流程。
除了基礎(chǔ)設(shè)施的運(yùn)維問題,服務(wù)端主要解決兩個(gè)通用問題:
身份認(rèn)證:服務(wù)端提供的 API 如何對(duì)客戶端的請(qǐng)求進(jìn)行鑒權(quán)?客戶端的信息如果泄露如何保證數(shù)據(jù)安全?
數(shù)據(jù)訪問:客戶端如何進(jìn)行數(shù)據(jù)庫操作和文件操作?
這是每一個(gè)小程序開發(fā)都會(huì)遇到的共性的問題,可以通過一些框架或者模板來避免重復(fù)建設(shè)。因此我們基于函數(shù)計(jì)算開發(fā)了一個(gè)小程序應(yīng)用模板,解決了這些通用的問題,讓開發(fā)者能夠?qū)W⒃跇I(yè)務(wù)邏輯上,快速開發(fā)上線自己的小程序。
客戶端小程序通過支付寶 App 的 API,獲得 authCode,這個(gè)過程會(huì)在 App 中彈出用戶授權(quán)框;
小程序客戶端向小程序服務(wù)端發(fā)起 createSession 請(qǐng)求,用于初始化的身份認(rèn)證;
小程序服務(wù)端將 authCode 傳給支付寶服務(wù)端,支付寶服務(wù)端校驗(yàn) authCode,返回 accessToken;
小程序服務(wù)端根據(jù)收到的 accessToken 生成一個(gè) sessionId 和一個(gè) STS token,在服務(wù)端記錄這 2 個(gè)信息然后把它們返回給客戶端。STS token 是用于訪問服務(wù)端函數(shù)的憑證,而 sessionId 作為前面認(rèn)證成功而建立的會(huì)話信息,通過這個(gè) sessionId 可以識(shí)別當(dāng)前請(qǐng)求的用戶信息;
小程序客戶端再次需要獲取數(shù)據(jù),帶著證明自己身份的 sessionId 向小程序服務(wù)端發(fā)起獲取數(shù)據(jù)請(qǐng)求;
小程序服務(wù)端首先根據(jù) sessionId 獲取用戶身份信息,再根據(jù)用戶信息獲取相關(guān)數(shù)據(jù);
將用戶數(shù)據(jù)返回給小程序客戶端。
準(zhǔn)備工作:注冊支付寶開發(fā)者賬號(hào)
如果您尚未注冊支付寶開發(fā)者賬號(hào),使用支付寶賬號(hào)登錄 螞蟻金服開放平臺(tái),并完成開發(fā)者身份注冊。詳細(xì)信息請(qǐng)參見 開發(fā)者入駐說明。
創(chuàng)建支付寶小程序應(yīng)用
使用支付寶賬號(hào)登錄 螞蟻金服開放平臺(tái)進(jìn)入開發(fā)者中心 創(chuàng)建小程序,填寫基本信息,并記錄下 APPID
生成密鑰,需要在小程序服務(wù)端與支付寶服務(wù)端配置密鑰,對(duì)交易數(shù)據(jù)進(jìn)行雙方校驗(yàn)
將公鑰配置在 【設(shè)置】->【開發(fā)設(shè)置】->【接口加簽方式】,并記錄私鑰
準(zhǔn)備工作
開通 函數(shù)計(jì)算,表格存儲(chǔ),日志服務(wù)
部署應(yīng)用
進(jìn)入控制臺(tái)應(yīng)用中心,選擇 Mini App Todo List Server Template
模板,填寫剛才記錄的 APPID 與 PrivateKey,為 DBInstance/LogProject 取個(gè)自定義的名字(如果名字已被占用,會(huì)報(bào) Already Exists 的錯(cuò)誤),部署應(yīng)用
準(zhǔn)備工作
下載并安裝支付寶 小程序開發(fā)者工具。
搭建應(yīng)用
在小程序項(xiàng)目根目錄下,安裝 fc-nodejs-sdk:
npm install git://github.com/aliyun/fc-nodejs-sdk.git#mini-app --save
TODO LIST 客戶端代碼在 mini-app-todo-list-client
修改server.js開頭定義的變量,這些值會(huì)在 服務(wù)端模板 部署成功后自動(dòng)輸出:
信息 | 說明 |
---|---|
fcAccountId | 阿里云AccountId |
fcRegion | 函數(shù)部署的區(qū)域,例如cn-shanghai |
fcServiceName | 函數(shù)計(jì)算服務(wù)名稱 |
sessionFunctionName | session函數(shù)的名稱,例如session |
dbFunctionName | db函數(shù)的名稱,例如db |
由于 fc-nodejs-sdk 使用了ES6語法,在發(fā)布小程序時(shí),需要在小程序項(xiàng)目的根目錄下,新建一個(gè)文件mini.project.json,填入以下內(nèi)容:
{ "node_modules_es6_whitelist": [ "@alicloud/fc2" ] }
至此,開發(fā)工作已經(jīng)完成,您可以調(diào)試,上線您的小程序啦。
看完上述內(nèi)容,你們對(duì)怎么輕松構(gòu)建基于Serverless 架構(gòu)的小程序有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。