Python 快速开始
本文档介绍如何从零开始创建一个 Python 应用,并将其部署到 CloudBase HTTP 云函数中。该项目使用 Flask 作为 Web 应用框架。
前置条件
在开始之前,请确保您已经:
- 安装了 Python 3.10 或更高版本
- 拥有腾讯云账号并开通了 CloudBase 服务
- 了解基本的 Python 和 Flask 开发知识
第一步:创建项目目录
创建名为 helloworld-python 的新项目目录,并进入该目录:
mkdir helloworld-python
cd helloworld-python
第二步:设置 Python 虚拟环境
创建并激活虚拟环境,以便管理项目依赖:
# 创建虚拟环境
python -m venv env
# 激活虚拟环境
# Linux/macOS
source env/bin/activate
# Windows
# env\Scripts\activate
💡 提示:使用虚拟环境可以避免依赖冲突,确保项目的独立性。
第三步:安装依赖
安装 Flask 框架:
pip install flask
第四步:编写应用代码
创建 app.py 文件作为应用的入口文件:
⚠️ 重要提示:CloudBase HTTP 云函数的默认端口必须是
9000。
import os
from flask import Flask, jsonify, request
app = Flask(__name__)
@app.route('/')
def hello():
"""根路径处理函数"""
return 'Hello World from Python Flask!'
@app.route('/health')
def health_check():
"""健康检查接口"""
return jsonify({
'status': 'healthy',
'message': 'Python Flask app is running',
'python_version': os.sys.version
})
@app.route('/api/info')
def get_info():
"""获取请求信息"""
return jsonify({
'method': request.method,
'path': request.path,
'headers': dict(request.headers),
'args': dict(request.args)
})
@app.errorhandler(404)
def not_found(error):
"""404 错误处理"""
return jsonify({'error': 'Not Found', 'message': 'The requested resource was not found'}), 404
@app.errorhandler(500)
def internal_error(error):
"""500 错误处理"""
return jsonify({'error': 'Internal Server Error', 'message': 'Something went wrong'}), 500
if __name__ == '__main__':
# 监听所有网络接口的 9000 端口
app.run(host='0.0.0.0', port=9000, debug=False)
此代码创建了一个基本的 Flask Web 应用,提供以下功能:
- 根路径 (
/):返回欢迎消息 - 健康检查 (
/health):返回应用状态信息 - 信息接口 (
/api/info):返回请求详细信息 - 错误处理:统一的 404 和 500 错误处理
第五步:生成依赖文件
生成 requirements.txt 文件,记录项目依赖:
pip freeze > requirements.txt
查看生成的依赖文件:
cat requirements.txt
典型的 requirements.txt 内容如下:
blinker==1.7.0
click==8.1.7
Flask==3.0.0
itsdangerous==2.1.2
Jinja2==3.1.2
MarkupSafe==2.1.3
Werkzeug==3.0.1
第六步:创建启动脚本
创建 scf_bootstrap 文件(无扩展名),这是 CloudBase 云函数的启动脚本:
#!/bin/bash
export PYTHONPATH="./env/lib/python3.10/site-packages:$PYTHONPATH"
/var/lang/python310/bin/python3.10 app.py
⚠️ 注意:
- 文件名必须是
scf_bootstrap,没有扩展名- Python 路径需要与运行时版本匹配(这里使用 Python 3.10)
- 确保文件具有执行权限
为启动脚本添加执行权限:
chmod +x scf_bootstrap
第七步:本地测试(可选)
在部署之前,您可以在本地测试应用:
python app.py
测试成功后,您可以通过以下方式验证:
- 访问
http://localhost:9000/查看欢迎消息 - 访问
http://localhost:9000/health查看健康状态 - 访问
http://localhost:9000/api/info查看请求信息
按 Ctrl + C 停止本地服务器。
第八步:准备部署文件
确保您的项目目录包含以下文件:
helloworld-python/
├── env/ # 虚拟环境目录
│ └── lib/
│ └── python3.10/
│ └── site-packages/
├── app.py # 应用主文件
├── requirements.txt # 依赖列表
└── scf_bootstrap # 启动脚本
第九步:打包项目
将项目文件打包为 ZIP 文件:
# 确保在项目根目录
zip -r -q helloworld-python.zip ./*
💡 打包提示:
- 包含
env目录以确保依赖完整- 确保
scf_bootstrap文件包含在内- 避免包含不必要的文件(如
.git、__pycache__等)
第十步:部署到 CloudBase HTTP 云函数
通过控制台部署
- 登录 CloudBase 控制台
- 选择您的环境,进入「云函数」页面
- 点击「新建云函数」
- 选择「HTTP 云函数」
- 填写函数名称(如:
helloworld-python) - 选择运行时:Python 3.10
- 选择「本地上传」方式
- 上传刚才创建的
helloworld-python.zip文件 - 点击「确定」完成部署
通过 CLI 部署(敬请期待)
第十一步:访问您的应用
部署成功后,您可以参考Web 客户端调用设置自定义域名访问HTTP 云函数。
您可以通过以下方式测试:
- 访问根路径查看欢迎消息
- 访问
/health路径查看应用状态 - 访问
/api/info路径查看请求信息
常见问题
Q: 为什么必须使用 9000 端口?
A: CloudBase HTTP 云函数要求应用监听 9000 端口,这是平台的标准配置。
Q: scf_bootstrap 文件的作用是什么?
A: scf_bootstrap 是云函数的启动脚本,用于设置环境变量和启动应用程序。
Q: 如何查看函数日志?
A: 在 CloudBase 控制台的云函数页面,点击函数名称进入详情页,可以查看运行日志。
Q: 支持哪些 Python 版本?
A: CloudBase 支持 Python 3.6、3.7、3.9、3.10 等版本,建议使用 Python 3.10。
Q: 如何处理依赖包过大的问题?
A: 可以使用层(Layer)功能来管理大型依赖包,或者使用 pip install --no-deps 只安装必要的包。
最佳实践
- 依赖管理:使用
requirements.txt精确指定依赖版本 - 错误处理:实现统一的错误处理机制
- 日志记录:使用 Python 的
logging模块记录关键信息 - 环境变量:使用环境变量管理配置信息
- 代码结构:对于复杂应用,建议使用蓝图(Blueprint)组织代码
下一步
- 了解更多 HTTP 云函数配置选项
- 学习如何 连接数据库
- 查看 Flask 框架进阶用法