Major Changes: - Database: Install pg_bigm/pgvector plugins, create test database - Python service: v1.0 -> v1.1, add pymupdf4llm/openpyxl/pypandoc - Node.js backend: v1.3 -> v1.7, fix pino-pretty and ES Module imports - Frontend: v1.2 -> v1.3, skip TypeScript check for deployment - Code recovery: Restore empty files from local backup Technical Fixes: - Fix pino-pretty error in production (conditional loading) - Fix ES Module import paths (add .js extensions) - Fix OSSAdapter TypeScript errors - Update Prisma Schema (63 models, 16 schemas) - Update environment variables (DATABASE_URL, EXTRACTION_SERVICE_URL, OSS) - Remove deprecated variables (REDIS_URL, DIFY_API_URL, DIFY_API_KEY) Documentation: - Create 0126 deployment folder with 8 documents - Update database development standards v2.0 - Update SAE deployment status records Deployment Status: - PostgreSQL: ai_clinical_research_test with plugins - Python: v1.1 @ 172.17.173.84:8000 - Backend: v1.7 @ 172.17.173.89:3001 - Frontend: v1.3 @ 172.17.173.90:80 Tested: All services running successfully on SAE
378 lines
6.8 KiB
Markdown
378 lines
6.8 KiB
Markdown
# 🚀 快速部署到SAE - 5分钟上手
|
||
|
||
> **适合人群:** 零部署经验的产品经理
|
||
> **预计时间:** 2-3小时(包含等待)
|
||
> **难度等级:** ⭐⭐ 简单
|
||
|
||
---
|
||
|
||
## 📚 完整文档清单
|
||
|
||
我已经为您准备了3份详细文档,请按顺序阅读:
|
||
|
||
### 1️⃣ 详细部署指南(必读)
|
||
**文件:** `docs/05-部署文档/02-SAE部署完全指南(产品经理版).md`
|
||
|
||
**内容:**
|
||
- ✅ 需不需要购买Redis的答案
|
||
- ✅ 傻瓜式部署步骤(7个大步骤)
|
||
- ✅ 每一步都有截图和说明
|
||
- ✅ 常见问题解决方案
|
||
- ✅ 成本估算和优化建议
|
||
|
||
**阅读时间:** 20-30分钟
|
||
|
||
---
|
||
|
||
### 2️⃣ 环境变量配置指南(必读)
|
||
**文件:** `docs/07-运维文档/03-SAE环境变量配置指南.md`
|
||
|
||
**内容:**
|
||
- ✅ 所有环境变量的详细说明
|
||
- ✅ 如何正确填写每一个配置项
|
||
- ✅ 配置检查清单
|
||
- ✅ 常见错误和解决方法
|
||
|
||
**阅读时间:** 10-15分钟
|
||
|
||
---
|
||
|
||
### 3️⃣ 部署检查清单(打印/对照)
|
||
**文件:** `部署检查清单.md`
|
||
|
||
**内容:**
|
||
- ✅ 7个阶段的检查项
|
||
- ✅ 每个步骤都有复选框
|
||
- ✅ 快速验证命令
|
||
- ✅ 重要信息记录模板
|
||
|
||
**使用方法:** 打印出来或在另一个屏幕打开,边部署边勾选
|
||
|
||
---
|
||
|
||
## 🎯 三步快速开始
|
||
|
||
### Step 1: 准备工具(5分钟)
|
||
|
||
1. **安装Docker Desktop**
|
||
- 下载:https://www.docker.com/products/docker-desktop/
|
||
- 安装后重启电脑
|
||
- 确认Docker运行:在PowerShell输入 `docker ps`
|
||
|
||
2. **确认阿里云服务已购买**
|
||
- ✅ SAE (Serverless应用引擎)
|
||
- ✅ RDS PostgreSQL
|
||
- ✅ OSS (对象存储)
|
||
|
||
---
|
||
|
||
### Step 2: 构建和推送镜像(15分钟)
|
||
|
||
**打开PowerShell,执行:**
|
||
|
||
```powershell
|
||
# 1. 进入项目目录
|
||
cd D:\MyCursor\AIclinicalresearch
|
||
|
||
# 2. 使用自动化脚本部署
|
||
.\deploy-to-sae.ps1 -Version "v1.0.0"
|
||
|
||
# 脚本会自动完成:
|
||
# - 构建Docker镜像
|
||
# - 推送到阿里云容器镜像服务
|
||
```
|
||
|
||
**如果提示需要登录阿里云:**
|
||
```powershell
|
||
docker login --username=你的阿里云账号 registry.cn-hangzhou.aliyuncs.com
|
||
# 输入密码(在阿里云容器镜像服务设置的密码)
|
||
```
|
||
|
||
---
|
||
|
||
### Step 3: 在SAE控制台完成部署(30分钟)
|
||
|
||
1. **登录阿里云控制台**
|
||
- https://www.aliyun.com
|
||
- 搜索"Serverless应用引擎"
|
||
|
||
2. **创建应用**
|
||
- 应用名称:`aiclinical-backend-dev`
|
||
- 镜像:选择刚才推送的镜像
|
||
- 实例规格:1核2GB
|
||
|
||
3. **配置环境变量**
|
||
- 参考:`docs/07-运维文档/03-SAE环境变量配置指南.md`
|
||
- 逐行复制配置(注意替换真实值)
|
||
|
||
4. **验证部署**
|
||
- 访问:`http://你的SAE地址:3001/health`
|
||
- 看到 `{"status":"ok"}` 就成功了!
|
||
|
||
---
|
||
|
||
## ❓ 核心问题快速解答
|
||
|
||
### Q1: 需要购买Redis吗?
|
||
|
||
**答案:初期不需要!**
|
||
|
||
- ✅ 开发测试环境:使用内存缓存(`CACHE_TYPE=memory`)
|
||
- ✅ 用户<100人:内存缓存足够
|
||
- ⚠️ 用户100-1000人:建议购买Redis(¥200/月)
|
||
- ✅ 用户>1000人:必须使用Redis
|
||
|
||
**配置方法:**
|
||
```bash
|
||
# 初期配置
|
||
CACHE_TYPE=memory
|
||
|
||
# 未来需要时改为
|
||
CACHE_TYPE=redis
|
||
REDIS_HOST=r-xxxx.redis.rds.aliyuncs.com
|
||
REDIS_PASSWORD=你的密码
|
||
```
|
||
|
||
---
|
||
|
||
### Q2: Python微服务怎么部署?
|
||
|
||
**三个方案:**
|
||
|
||
**方案A:暂不部署(推荐初期)**
|
||
- 先部署Node.js后端
|
||
- Python服务继续在本地运行
|
||
- 环境变量:`EXTRACTION_SERVICE_URL=http://你的本地公网IP:8000`
|
||
- 或使用ngrok等内网穿透工具
|
||
|
||
**方案B:也部署到SAE(推荐正式上线)**
|
||
- 创建 `extraction_service/Dockerfile`
|
||
- 推送镜像到ACR
|
||
- 在SAE创建新应用 `aiclinical-python-dev`
|
||
- 配置SAE内网通信
|
||
|
||
**方案C:使用阿里云FC(函数计算)**
|
||
- 成本最低
|
||
- 按调用次数付费
|
||
- 需要改造代码
|
||
|
||
---
|
||
|
||
### Q3: 前端怎么部署?
|
||
|
||
**两个方案:**
|
||
|
||
**方案A:OSS静态托管(推荐初期)**
|
||
```powershell
|
||
# 1. 构建前端
|
||
cd frontend-v2
|
||
npm run build
|
||
|
||
# 2. 上传到OSS
|
||
# 在OSS控制台手动上传dist目录所有文件
|
||
|
||
# 3. 配置静态网站托管
|
||
# OSS控制台 → 基础设置 → 静态页面
|
||
```
|
||
|
||
**方案B:SAE部署(推荐正式)**
|
||
- 使用Nginx容器
|
||
- 创建Dockerfile for frontend
|
||
- 部署到SAE独立应用
|
||
|
||
---
|
||
|
||
### Q4: 部署失败怎么办?
|
||
|
||
**3个排查步骤:**
|
||
|
||
1. **查看日志**
|
||
```
|
||
SAE控制台 → 应用详情 → 实时日志
|
||
找红色ERROR关键词
|
||
```
|
||
|
||
2. **检查环境变量**
|
||
```
|
||
SAE控制台 → 配置管理 → 环境变量
|
||
确认DATABASE_URL、OSS密钥等配置正确
|
||
```
|
||
|
||
3. **查看详细文档**
|
||
```
|
||
docs/05-部署文档/02-SAE部署完全指南(产品经理版).md
|
||
→ 第8章:常见问题解决
|
||
```
|
||
|
||
---
|
||
|
||
## 📊 部署成功标志
|
||
|
||
### ✅ 后端部署成功
|
||
|
||
访问:`http://你的SAE地址:3001/health`
|
||
|
||
**预期返回:**
|
||
```json
|
||
{
|
||
"status": "ok",
|
||
"database": "connected",
|
||
"storage": "oss",
|
||
"cache": "memory",
|
||
"timestamp": "2025-12-11T10:30:00.000Z"
|
||
}
|
||
```
|
||
|
||
### ✅ 数据库连接成功
|
||
|
||
**日志中显示:**
|
||
```
|
||
✅ [Config] Environment validation passed
|
||
✅ [Database] 数据库连接成功
|
||
📦 [Storage] 使用阿里云 OSS 存储
|
||
```
|
||
|
||
### ✅ OSS存储正常
|
||
|
||
**测试方法:**
|
||
1. 访问后端API上传文件
|
||
2. 在OSS控制台能看到文件
|
||
3. 文件可以正常下载
|
||
|
||
---
|
||
|
||
## 💰 成本估算
|
||
|
||
### 开发测试环境(当前配置)
|
||
|
||
| 服务 | 规格 | 月费 | 说明 |
|
||
|------|------|------|------|
|
||
| SAE | 1C2G × 1实例 | ¥150 | 按量付费 |
|
||
| RDS | 2C4G 通用版 | ¥300 | 可包年优惠 |
|
||
| OSS | 100GB存储 | ¥10 | 按实际使用 |
|
||
| Redis | - | **¥0** | **不购买** |
|
||
| **合计** | | **¥460/月** | |
|
||
|
||
### 正式生产环境(用户>1000)
|
||
|
||
| 服务 | 规格 | 月费 |
|
||
|------|------|------|
|
||
| SAE | 2C4G × 3实例 | ¥600 |
|
||
| RDS | 4C8G 通用版 | ¥600 |
|
||
| OSS | 500GB + 50GB流量 | ¥70 |
|
||
| Redis | 2GB标准版 | ¥200 |
|
||
| **合计** | | **¥1470/月** |
|
||
|
||
---
|
||
|
||
## 🎉 恭喜!
|
||
|
||
如果您已经完成部署,恭喜您!
|
||
|
||
### 记得保存重要信息:
|
||
|
||
```
|
||
【部署信息】
|
||
|
||
后端地址:http://_______________:3001
|
||
前端地址:http://_______________
|
||
|
||
RDS地址:_______________
|
||
RDS密码:_______________
|
||
|
||
OSS Bucket:aiclinical-dev
|
||
OSS AccessKeyId:_______________
|
||
OSS AccessKeySecret:_______________
|
||
|
||
部署时间:_______________
|
||
```
|
||
|
||
---
|
||
|
||
## 📞 需要帮助?
|
||
|
||
1. **查看详细文档**
|
||
- `docs/05-部署文档/02-SAE部署完全指南(产品经理版).md`
|
||
|
||
2. **查看环境变量配置**
|
||
- `docs/07-运维文档/03-SAE环境变量配置指南.md`
|
||
|
||
3. **使用检查清单**
|
||
- `部署检查清单.md`
|
||
|
||
4. **查看云原生架构设计**
|
||
- `docs/09-架构实施/03-云原生部署架构指南.md`
|
||
|
||
---
|
||
|
||
**版本:** v1.0
|
||
**创建日期:** 2025-12-11
|
||
**维护者:** 技术架构师
|
||
**下次更新:** 根据实际部署反馈优化
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|