背景
在上一篇1. PMP成绩查询小程序之PMI网站分析
,我的小程序后台已经正式上线,能够正常的查询返回PMI网站的结果,但是从返回速度上来讲不是很理想:
-
PMI网站架设在美国
由于我后台云服务架设在上海,所以在通过PMI网站进行数据交互时,所花费的时候需要5-20s不等,也就是说网络最差的时候,小程序等待时间长达20s,给用户的体验不好。
登录页面ip
ip位置 -
密码输错5次以上,当前访问IP被锁15分钟
由于我的云服务是独立IP,密码错误次数达到5后后,当前IP就会被锁15分钟。导致所有用户都无法正常查询。所以要考虑一下如何更换对外的公网IP。
我在2020-02-09这天测试的时候,好像这个限制被取消了?
以上就是我需要优化的2个问题
解决思路
最近在看微信小程序的云函数,这个相信大家都不陌生,然后根据小程序的云函数我又翻阅了一下腾讯云的云函数。这俩个有什么区别呢?我做一个简单的对比
微 代表 微信小程序云函数,腾 腾讯云函数
-
支持后台编程语言
微:node.js
腾:node.js go java python php -
免费使用项目
微
微:数据库访问,外网访问,文件上传下载,函数调用
腾:函数调用(其他的都要花钱买)
这是一个简单对比,你会发现更加懵逼。微信小程序云函数算是腾讯云函数的一个子集,微信小程序云函数免费额度高,这也是为了小程序的生态而做。
由于对返回的网页数据进行有效的提取,所以我最关注的还是后台语言,再加之之前就用的python,可以完整迁移到腾讯云函数上面去。
过程
决定要迁移后,就开始进入腾讯云官网申请云函数
申请云函数
- 登录腾讯云
点我可以直接进入云函数
云函数 -
申请云函数
选择函数服务,点击新建
新建 - 选择函数区域
选择区域时,由于网站在老美那边,所以我直接选的是 硅谷,这样访问速度就快得多。
区域 -
选择模板
函数名字自定义,环境我选择的是python3.6,模板就选第一咯helloworld
环境模板 -
角色选择
没有运行角色就新建一个,基本都选择默认这类的就行了
权限角色 -
编辑函数
编辑函数 - 简单讲解
# -*- coding: utf8 -*-
import json
def main_handler(event, context):
# event 是调用函数时 key,value的键值对
print("Received event: " + json.dumps(event, indent = 2))
print("Received context: " + str(context))
print("Hello world")
return("Hello World")
-
测试
找到测试模板
小眼睛
修改测试模板
修改测试模板
修改代码
# -*- coding: utf8 -*-
import json
def main_handler(event, context):
print(event)
print(event['f'])
print(event['s'])
return(event['f']+" "+event['s'])
测试结果
测试结果
- 程序调用
直接参考网页 https://cloud.tencent.com/document/product/583/19694
分别有3个sdk的调用node.js php python,当然你还可以把接口对公网暴露地址,通过http的方式进行调用 - 代码上传
代码上传有3种方式
-
部署函数:用户可以在本地环境创建部署程序包并上传至 SCF 平台,或直接在 SCF 控制台上编写代码由控制台为您创建并上传部署程序包。
image.png
-
使用 VS Code 插件创建函数:Tencent Serverless Toolkit for VS Code 是腾讯云 Serverless 产品的 VS Code(Visual Studio Code)IDE 的插件。该插件可以让您更好地在本地进行 Serverless 项目开发和代码调试,并且轻松将项目部署到云端。
vscode上传
-
使用 CLI 创建函数:通过云函数的命令行工具 SCF CLI,创建函数并部署到云端。
坑点
通过vscode代码上传时,一直提示角色不存在
not exist SCF_QcsRole
直接注释配置文件里面
注释配置
总结
腾讯云函数确实方便了程序的部署,相对于之前如果需要做一个mini版本的api服务,
至少需要:租用一台服务器,独立IP,配置nginx
而这类云函数使用场景也应该是 手机app,小程序,简单的数据接口交互等功能
网友评论