2021-09-30
原来的EPC服务器到期了,本不打算继续提供web服务了,主要是站点没什么流量,平时有空的时候自己看按数据而已,工作忙也没怎么维护。
最近在研究K8s,然后又研究了到了serverless,按我目前的流量使用serverless应该就是免费了,所以研究了下,把现有的项目搬迁到了serverlsss上。以下记录下搬迁过程,给有需要的小伙伴避免踩坑:
项目技术:
python3.6+flask+sqllite
第一步:
现有项目打包,因为腾讯的serverless的环境中是没有一些第三方库,所以需要将使用的库一起打包到压缩文件内,另外比如我使用的lxml2库需要安装时编译,serverless环境是centros7.6,因此如果是windows下编译的肯定不行,先要保持和serverless环境一致的操作系统进行安装打包。
https://cloud.tencent.com/document/product/583/9702#.E6.89.93.E5.8C.85.E8.A6.81.E6.B1.82是打包的说明,不过呢写的不是很易懂,其实就2个步骤
1.把依赖安装在和代码同一个目录下
通过 pip3 install flask-admin=1.5.1 -t . -i http://xxx进行安装
也可以通过requirement.txet文件全部安装。安装完成后库和代码应该是再一起。如图
2.编写一个scf_bootstarp文件
腾讯云的serverless是通过执行scf_bootstarp来启动的,里面的内容就是shell脚本
记得执行sudo chomod 777 scf_bootstarp改为可执行文件
然后将整个文件打包成zip
在 Linux 下打包时,可以进入函数代码目录,通过调用 zip 命令时,将源文件指定为代码目录下的所有文件,实现生成部署程序包,例如 zip /home/scf_code.zip * -r。
第二步:
上传包,注意这里不需要选择模板创建,模板创建里有一个flask一直误导我。
把该填的填好,然后部署,如果没问题就OK了。本人在操作的是时候遇到个问题scf_bootstartp我在windows建立,然后打包,一直有格式问题,无法启动。
这里如果有问题,可以通过他的控制台来查看问题在哪?
这个操作虚拟机一样方便。
第三步:
绑定域名。
这里的说明又不是很友好,先要跳到API网关这个模块中,刚在创建的时候创建了新的API服务,可以通过查询进入到这个页面。
然后进入配置管理,自定义域名,自定义path这里我填了/根目录
这里需要配置证书,且需要最好解析,这里需要跳到域名注册的模块中进行配置,又没说明清楚。
需要在域名解析那增加cnname的域名解析,并指向serveless对外发布的域名
最后:
可以就可以通过域名进行访问了网站http://www.51pcap.com.
不过呢,他这冷启动时间有点长,给的公网速度也不是很快,网站整体访问速度不快。