快速部署和体验Serverless架构下的Django项目
该应用案例,需要您开通阿里云函数计算 产品;并建议您当前的账号有一下权限存在FCDefaultRole
。
- 通过阿里云 Serverless 应用中心: 可以点击 【🚀 部署】 ,按照引导填入参数,快速进行部署和体验。
- 下载安装 Serverless Devs:
npm install @serverless-devs/s
详细文档可以参考 Serverless Devs 安装文档
- 配置密钥信息:
s config add
详细文档可以参考 阿里云密钥配置文档
- 初始化项目:
s init start-django -d start-django
- 进入项目并部署:
cd start-django && s deploy
在本地使用该项目时,不仅可以部署,还可以进行更多的操作,例如查看日志,查看指标,进行多种模式的调试等,这些操作详情可以参考函数计算组件命令文档 ;
- 项目Yaml中,声明了
actions
,其对应的命令为pip3 install -r requirements.txt -t .
,如果在使用项目时,遇到类似找不到python
命令、pip
命令的情况,请根据自身电脑关于python
与pip
的配置对此出进行修改,或者手动进行依赖安装,并注释掉这actions
部分代码; - 目前函数计算支持的项目代码包大小为100M,如果一个完整的Django项目依赖包过大,可以按照以下方法进行优化和处理:
- 将部分静态资源等,放在对象存储中,以降低代码包的体积;
- 将
nasConfig
配置为auto
,然后基于 nas 指令将大文件(可能是训练集/依赖包)传输到 NAS 指定位置,然后配置相应的环境变量到s.yml
中的函数配置中; - 将非 custom-container 的函数转换成 custom-container,这需要对代码进行一定的改造,并新增 dockerfile,然后创建这个函数(此方式冷启动时间相对其他 runtime 会有一点点的延长);
- 通过custom-container运行时,将Django框架部署到Serverless架构,可以按照以下流程进行操作和处理:
- 开通阿里云容器镜像服务, 并创建对应的镜像仓库,设置密钥;
- 在项目中
s.container.yaml
中,修改44行的image
参数为自己的容器镜像服务对应的镜像仓库地址; - 在项目中执行
s build --use-docker -t s.container.yaml
进行项目的构建; - 构建完成之后执行
s deploy -y
进行项目的部署;
本项目是将 Python Web 框架中,非常受欢迎的 Django 框架,部署到阿里云 Serverless 平台(函数计算 FC)。
Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,视图V和模版T。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。并于2005年7月在BSD许可证下发布。这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。2019年12月2日,Django 3. 0发布
通过 Serverless Devs 开发者工具,您只需要几步,就可以体验 Serverless 架构,带来的降本提效的技术红利。
本案例应用是一个非常简单的 Hello World 案例,部署完成之后,您可以看到系统返回给您的案例地址,例如:
此时,打开案例地址,就可以看到测试的应用详情:
当然,除了这样一个 Django 的 Hello World 之外,我们还有一个基于 Django 框架的博客案例 ,可供学习和参考。
- Serverless Devs 项目:https://www.github.com/serverless-devs/serverless-devs
- Serverless Devs 文档:https://www.github.com/serverless-devs/docs
- Serverless Devs 钉钉交流群:33947367