Python中如何使用腾讯云Serverless(SCF)和API网关部署Django项目?

腾讯云 serverless(SCF)+api 网关,部署 django 求解。

求问,入口函数该怎么写。


Python中如何使用腾讯云Serverless(SCF)和API网关部署Django项目?
9 回复

请问有部署过相关项目的师傅有经验吗?


我最近刚用SCF部署过Django,分享下我的配置。

首先,安装必要的包:

pip install django scf-python-code

关键是要创建scf_bootstrap启动文件:

#!/usr/bin/env python3
import sys
import os

# 添加项目路径
sys.path.insert(0, '/var/user/your_project')

# 设置Django环境
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'your_project.settings')

# 导入WSGI应用
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

# SCF入口函数
def main_handler(event, context):
    from scf_apigw import apigw
    return apigw.response(application, event, context)

项目结构应该是:

your_project/
├── scf_bootstrap
├── requirements.txt
├── manage.py
└── your_project/
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py

在腾讯云控制台创建SCF函数时:

  1. 运行环境选Python 3.7+
  2. 执行方法填scf_bootstrap.main_handler
  3. 上传整个项目zip包(包含依赖)
  4. 内存至少给512MB,超时时间设30秒

API网关配置:

  1. 创建HTTP服务,后端类型选SCF
  2. 路径配置为/{path+},方法ANY
  3. 关联你创建的SCF函数

记得在settings.py里设置ALLOWED_HOSTS = ['*'],不然API网关请求会被拒绝。

静态文件建议用COS托管,Django的collectstatic收集后上传到COS,然后配置CDN。

数据库用云数据库MySQL,在settings里配置连接信息就行。

部署时注意把依赖包都打到zip里,可以用pip install -r requirements.txt -t .安装到当前目录。

一句话建议:用scf_bootstrap做入口,配置好API网关路径映射就行。

开账号,让我试试(刚弄完 aws 的 serverless , api gateway + lambda php)

<br>def main_handler(event,content):<br> pass<br>

发现一个国内仅有的 whmcs 资源类站点 http://whmcs.xiaomihost.com/ 不知道这样的站点有没有盈利的可能

aws 我也搞好了,不太懂 python 的 serverless 的入口函数怎么写,或者响应的包

不太懂 python 的 serverless 的入口函数怎么写,或者相应的包

回到顶部