Skip to content

部署云函数服务

云函数服务提供沙箱环境执行用户自定义的 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_CONCURRENTCLOUD_WORKER_POOL_SIZECLOUD_MEMORY_LIMIT_MB
1 核 1GB22256
2 核 2GB43384
4 核 4GB84512

启动服务

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:增加内存限制