部署云函数服务
云函数服务提供沙箱环境执行用户自定义的 JavaScript 代码,基于 vm2 实现安全隔离。
| 属性 | 值 |
|---|---|
| 技术栈 | Express + vm2 |
| 默认端口 | 3001 |
| 源码目录 | catpull-v3-server/cloud |
安装依赖
bash
cd catpull-v3-server/cloud
npm install配置环境变量
编辑 cloud/.env:
env
# 服务端口
PORT=3001
# 最大并发执行数(同时运行的 Worker 数量)
# 建议:根据服务器 CPU 核心数和内存大小调整,1GB 内存建议设置为 2-4
CLOUD_MAX_CONCURRENT=4
# 最大队列等待数(超过则拒绝请求)
# 建议:根据服务器内存和预期并发量调整
CLOUD_MAX_QUEUE_SIZE=100
# 函数执行超时时间(毫秒)
# 建议:30秒,防止无限执行的函数占用资源
CLOUD_EXECUTION_TIMEOUT=6000
# Worker 线程池大小
# 建议:根据服务器内存调整,1GB 内存建议设置为 2
CLOUD_WORKER_POOL_SIZE=2
# 单个 Worker 最大内存限制(MB)
# 建议:1GB 内存服务器设置为 256MB,防止内存不足
CLOUD_MEMORY_LIMIT_MB=256参数调优参考
| 服务器配置 | CLOUD_MAX_CONCURRENT | CLOUD_WORKER_POOL_SIZE | CLOUD_MEMORY_LIMIT_MB |
|---|---|---|---|
| 1 核 1GB | 2 | 2 | 256 |
| 2 核 2GB | 4 | 3 | 384 |
| 4 核 4GB | 8 | 4 | 512 |
启动服务
bash
npm run dev验证健康检查:
bash
curl http://localhost:3001/cloud/health进程守护
bash
pm2 start app.js --name catpull-cloud常见问题
云函数执行超时
调整 cloud/.env 中的参数:
CLOUD_EXECUTION_TIMEOUT:增大超时时间(毫秒)CLOUD_WORKER_POOL_SIZE:增加 Worker 线程数CLOUD_MEMORY_LIMIT_MB:增加内存限制
