2. PMP成績(jī)查詢小程序之騰訊云函數(shù)

背景

在上一篇1. PMP成績(jī)查詢小程序之PMI網(wǎng)站分析
,我的小程序后臺(tái)已經(jīng)正式上線,能夠正常的查詢返回PMI網(wǎng)站的結(jié)果,但是從返回速度上來(lái)講不是很理想:

  1. PMI網(wǎng)站架設(shè)在美國(guó)
    由于我后臺(tái)云服務(wù)架設(shè)在上海,所以在通過(guò)PMI網(wǎng)站進(jìn)行數(shù)據(jù)交互時(shí),所花費(fèi)的時(shí)候需要5-20s不等,也就是說(shuō)網(wǎng)絡(luò)最差的時(shí)候,小程序等待時(shí)間長(zhǎng)達(dá)20s,給用戶的體驗(yàn)不好。


    登錄頁(yè)面ip

    ip位置
  2. 密碼輸錯(cuò)5次以上,當(dāng)前訪問(wèn)IP被鎖15分鐘
    由于我的云服務(wù)是獨(dú)立IP,密碼錯(cuò)誤次數(shù)達(dá)到5后后,當(dāng)前IP就會(huì)被鎖15分鐘。導(dǎo)致所有用戶都無(wú)法正常查詢。所以要考慮一下如何更換對(duì)外的公網(wǎng)IP。
    我在2020-02-09這天測(cè)試的時(shí)候,好像這個(gè)限制被取消了?

以上就是我需要優(yōu)化的2個(gè)問(wèn)題

解決思路

最近在看微信小程序的云函數(shù),這個(gè)相信大家都不陌生,然后根據(jù)小程序的云函數(shù)我又翻閱了一下騰訊云的云函數(shù)。這倆個(gè)有什么區(qū)別呢?我做一個(gè)簡(jiǎn)單的對(duì)比
代表 微信小程序云函數(shù) 騰訊云函數(shù)

  1. 支持后臺(tái)編程語(yǔ)言
    :node.js
    :node.js go java python php

  2. 免費(fèi)使用項(xiàng)目
    :數(shù)據(jù)庫(kù)訪問(wèn),外網(wǎng)訪問(wèn),文件上傳下載,函數(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)頁(yè)數(shù)據(jù)進(jìn)行有效的提取,所以我最關(guān)注的還是后臺(tái)語(yǔ)言,再加之之前就用的python,可以完整遷移到騰訊云函數(shù)上面去。

過(guò)程

決定要遷移后,就開(kāi)始進(jìn)入騰訊云官網(wǎng)申請(qǐng)?jiān)坪瘮?shù)

申請(qǐng)?jiān)坪瘮?shù)

  1. 登錄騰訊云
    點(diǎn)我可以直接進(jìn)入云函數(shù)
    云函數(shù)
  2. 申請(qǐng)?jiān)坪瘮?shù)
    選擇函數(shù)服務(wù),點(diǎn)擊新建


    新建
  3. 選擇函數(shù)區(qū)域
    選擇區(qū)域時(shí),由于網(wǎng)站在老美那邊,所以我直接選的是 硅谷,這樣訪問(wèn)速度就快得多。
    區(qū)域
  4. 選擇模板
    函數(shù)名字自定義,環(huán)境我選擇的是python3.6,模板就選第一咯helloworld


    環(huán)境模板
  5. 角色選擇
    沒(méi)有運(yùn)行角色就新建一個(gè),基本都選擇默認(rèn)這類的就行了


    權(quán)限角色
  6. 編輯函數(shù)


    編輯函數(shù)
  7. 簡(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")
  1. 測(cè)試
    找到測(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é)果


測(cè)試結(jié)果
  1. 程序調(diào)用
    直接參考網(wǎng)頁(yè) https://cloud.tencent.com/document/product/583/19694
    分別有3個(gè)sdk的調(diào)用node.js php python,當(dāng)然你還可以把接口對(duì)公網(wǎng)暴露地址,通過(guò)http的方式進(jìn)行調(diào)用
  2. 代碼上傳
    代碼上傳有3種方式
  • 部署函數(shù):用戶可以在本地環(huán)境創(chuàng)建部署程序包并上傳至 SCF 平臺(tái),或直接在 SCF 控制臺(tái)上編寫(xiě)代碼由控制臺(tái)為您創(chuàng)建并上傳部署程序包。

    image.png

  • 使用 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)目開(kāi)發(fā)和代碼調(diào)試,并且輕松將項(xiàng)目部署到云端。

    vscode上傳

  • 使用 CLI 創(chuàng)建函數(shù):通過(guò)云函數(shù)的命令行工具 SCF CLI,創(chuàng)建函數(shù)并部署到云端。

坑點(diǎn)

通過(guò)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ù)接口交互等功能

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容