背景
在上一篇1. PMP成績(jī)查詢小程序之PMI網(wǎng)站分析
缆镣,我的小程序后臺(tái)已經(jīng)正式上線芽突,能夠正常的查詢返回PMI網(wǎng)站的結(jié)果,但是從返回速度上來講不是很理想:
-
PMI網(wǎng)站架設(shè)在美國(guó)
由于我后臺(tái)云服務(wù)架設(shè)在上海董瞻,所以在通過PMI網(wǎng)站進(jìn)行數(shù)據(jù)交互時(shí)寞蚌,所花費(fèi)的時(shí)候需要5-20s不等,也就是說網(wǎng)絡(luò)最差的時(shí)候钠糊,小程序等待時(shí)間長(zhǎng)達(dá)20s挟秤,給用戶的體驗(yàn)不好。
密碼輸錯(cuò)5次以上抄伍,當(dāng)前訪問IP被鎖15分鐘
由于我的云服務(wù)是獨(dú)立IP艘刚,密碼錯(cuò)誤次數(shù)達(dá)到5后后,當(dāng)前IP就會(huì)被鎖15分鐘截珍。導(dǎo)致所有用戶都無法正常查詢昔脯。所以要考慮一下如何更換對(duì)外的公網(wǎng)IP啄糙。
我在2020-02-09這天測(cè)試的時(shí)候,好像這個(gè)限制被取消了云稚?
以上就是我需要優(yōu)化的2個(gè)問題
解決思路
最近在看微信小程序的云函數(shù)隧饼,這個(gè)相信大家都不陌生,然后根據(jù)小程序的云函數(shù)我又翻閱了一下騰訊云的云函數(shù)静陈。這倆個(gè)有什么區(qū)別呢燕雁?我做一個(gè)簡(jiǎn)單的對(duì)比
微 代表 微信小程序云函數(shù),騰 騰訊云函數(shù)
支持后臺(tái)編程語言
微:node.js
騰:node.js go java python php-
免費(fèi)使用項(xiàng)目
微:數(shù)據(jù)庫(kù)訪問鲸拥,外網(wǎng)訪問拐格,文件上傳下載,函數(shù)調(diào)用
騰:函數(shù)調(diào)用(其他的都要花錢買)
這是一個(gè)簡(jiǎn)單對(duì)比刑赶,你會(huì)發(fā)現(xiàn)更加懵逼捏浊。微信小程序云函數(shù)算是騰訊云函數(shù)的一個(gè)子集,微信小程序云函數(shù)免費(fèi)額度高撞叨,這也是為了小程序的生態(tài)而做金踪。
由于對(duì)返回的網(wǎng)頁數(shù)據(jù)進(jìn)行有效的提取,所以我最關(guān)注的還是后臺(tái)語言牵敷,再加之之前就用的python胡岔,可以完整遷移到騰訊云函數(shù)上面去。
過程
決定要遷移后枷餐,就開始進(jìn)入騰訊云官網(wǎng)申請(qǐng)?jiān)坪瘮?shù)
申請(qǐng)?jiān)坪瘮?shù)
- 登錄騰訊云
點(diǎn)我可以直接進(jìn)入云函數(shù)
-
申請(qǐng)?jiān)坪瘮?shù)
選擇函數(shù)服務(wù)靶瘸,點(diǎn)擊新建
- 選擇函數(shù)區(qū)域
選擇區(qū)域時(shí),由于網(wǎng)站在老美那邊毛肋,所以我直接選的是 硅谷怨咪,這樣訪問速度就快得多。
-
選擇模板
函數(shù)名字自定義润匙,環(huán)境我選擇的是python3.6诗眨,模板就選第一咯helloworld
-
角色選擇
沒有運(yùn)行角色就新建一個(gè),基本都選擇默認(rèn)這類的就行了
-
編輯函數(shù)
- 簡(jiǎn)單講解
# -*- coding: utf8 -*-
import json
def main_handler(event, context):
# event 是調(diào)用函數(shù)時(shí) key趁桃,value的鍵值對(duì)
print("Received event: " + json.dumps(event, indent = 2))
print("Received context: " + str(context))
print("Hello world")
return("Hello World")
-
測(cè)試
找到測(cè)試模板
修改測(cè)試模板
修改代碼
# -*- coding: utf8 -*-
import json
def main_handler(event, context):
print(event)
print(event['f'])
print(event['s'])
return(event['f']+" "+event['s'])
測(cè)試結(jié)果
- 程序調(diào)用
直接參考網(wǎng)頁 https://cloud.tencent.com/document/product/583/19694
分別有3個(gè)sdk的調(diào)用node.js php python辽话,當(dāng)然你還可以把接口對(duì)公網(wǎng)暴露地址肄鸽,通過http的方式進(jìn)行調(diào)用 - 代碼上傳
代碼上傳有3種方式
-
部署函數(shù):用戶可以在本地環(huán)境創(chuàng)建部署程序包并上傳至 SCF 平臺(tái),或直接在 SCF 控制臺(tái)上編寫代碼由控制臺(tái)為您創(chuàng)建并上傳部署程序包。
-
使用 VS Code 插件創(chuàng)建函數(shù):Tencent Serverless Toolkit for VS Code 是騰訊云 Serverless 產(chǎn)品的 VS Code(Visual Studio Code)IDE 的插件汹想。該插件可以讓您更好地在本地進(jìn)行 Serverless 項(xiàng)目開發(fā)和代碼調(diào)試预皇,并且輕松將項(xiàng)目部署到云端。
使用 CLI 創(chuàng)建函數(shù):通過云函數(shù)的命令行工具 SCF CLI逮诲,創(chuàng)建函數(shù)并部署到云端帜平。
坑點(diǎn)
通過vscode代碼上傳時(shí)幽告,一直提示角色不存在
not exist SCF_QcsRole
直接注釋配置文件里面
總結(jié)
騰訊云函數(shù)確實(shí)方便了程序的部署,相對(duì)于之前如果需要做一個(gè)mini版本的api服務(wù)裆甩,
至少需要:租用一臺(tái)服務(wù)器冗锁,獨(dú)立IP,配置nginx
而這類云函數(shù)使用場(chǎng)景也應(yīng)該是 手機(jī)app嗤栓,小程序冻河,簡(jiǎn)單的數(shù)據(jù)接口交互等功能