Files
AIclinicalresearch/docs/05-部署文档/00-阿里云SAE最新真实状态记录.md
HaHafeng 6124c7abc6 docs(platform): Add database documentation system and restructure deployment docs
Completed:
- Add 6 core database documents (docs/01-平台基础层/07-数据库/)
  Architecture overview, migration history, environment comparison,
  tech debt tracking, seed data management, PostgreSQL extensions
- Restructure deployment docs: archive 20 legacy files to _archive-2025/
- Create unified daily operations manual (01-日常更新操作手册.md)
- Add pending deployment change tracker (03-待部署变更清单.md)
- Update database development standard to v3.0 (three iron rules)
- Fix Prisma schema type drift: align @db.* annotations with actual DB
  IIT: UUID/Timestamptz(6), SSA: Timestamp(6)/VarChar(20/50/100)
- Add migration: 20260227_align_schema_with_db_types (idempotent ALTER)
- Add Cursor Rule for auto-reminding deployment change documentation
- Update system status guide v6.4 with deployment and DB doc references
- Add architecture consultation docs (Prisma guide, SAE deployment guide)

Technical details:
- Manual migration due to shadow DB limitation (TD-001 in tech debt)
- Deployment docs reduced from 20+ scattered files to 3 core documents
- Cursor Rule triggers on schema.prisma, package.json, Dockerfile changes

Made-with: Cursor
2026-02-27 14:35:25 +08:00

552 lines
20 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🚀 AI临床研究平台 - 阿里云SAE最新真实状态记录
> **文档用途**记录阿里云SAE服务器最新真实状态 + 每次部署记录
> **最后更新**2026-02-27
> **维护人员**:开发团队
> **说明**本文档准确记录SAE上所有应用的当前状态包括内网地址、镜像版本、用户名密码等关键资源信息
---
## 📊 一、当前部署状态一览
| 服务名称 | 部署状态 | 镜像版本 | 部署位置 | 最后更新时间 |
|---------|---------|---------|---------|-------------|
| **PostgreSQL数据库** | ✅ 运行中 | PostgreSQL 15 + 插件 | RDS | 2026-02-27 |
| **前端Nginx服务** | ✅ 运行中 | **v1.8** | SAE | 2026-02-27 |
| **Python微服务** | ✅ 运行中 | **v1.2** | SAE | 2026-02-27 |
| **Node.js后端** | ✅ 运行中 | **v2.1** | SAE | 2026-02-27 |
| **R统计引擎** | ✅ 运行中 | **v1.0.1** | SAE | 2026-02-27 |
| **Dify AI服务** | ⚠️ 已废弃 | - | - | 使用pgvector替代 |
---
## 🔑 二、阿里云资源信息
### 2.1 ACR容器镜像仓库
**基本信息**
- **命名空间**`ai-clinical`
- **Registry地址公网**`crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com`
- **Registry地址VPC**`crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com`
- **用户名**`gofeng117@163.com`
- **密码**`fengzhibo117`
**镜像仓库列表**
| 仓库名称 | 最新版本 | 镜像大小 | VPC地址 |
|---------|---------|---------|---------|
| **python-extraction** | **v1.2** | ~1.1GB | `crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/python-extraction:v1.2` |
| **ssa-r-statistics** | **v1.0.1** | ~1.8GB | `crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/ssa-r-statistics:v1.0.1` |
| **ai-clinical_frontend-nginx** | v1.3 | ~50MB | `crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/ai-clinical_frontend-nginx:v1.3` |
| **backend-service** | v1.7 | ~838MB | `crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/backend-service:v1.7` |
---
### 2.2 VPC网络与NAT网关
**VPC信息**
- **VPC ID**`vpc-2ze055cptkew9c38w4r06`
- **VPC名称**`ai-clinical-vpc`
- **网段**`172.17.0.0/16`
- **地域**华北2北京
- **交换机1**`vsw-2zevacop039bxrmj6yc0c`可用区F
- **交换机2**`vsw-2zehoeyw9ldncymcyvfwq`可用区A
- **安全组ID**`sg-2zedk6fi8sgmmcwdu7tu`
**NAT网关信息**
- **NAT网关名称**`NAT_airesearch`
- **NAT网关ID**`ngw-2zeec9ulzgw7ywvx1pst6`
- **公网IPEIP**`182.92.176.14`
- **SNAT表ID**`stb-2zesszmzx1qpwf1cb2bry`
---
### 2.3 RDS PostgreSQL数据库
**实例信息**
- **实例ID**`pgm-2zex1m2y3r23hdn5`
- **规格**2核4GBpg.n2.2c.1m
- **存储空间**100GBSSD云盘
- **PostgreSQL版本**15.0
- **内网地址**`pgm-2zex1m2y3r23hdn5.pg.rds.aliyuncs.com:5432`
- **外网地址**`pgm-2zex1m2y3r23hdn5.pg.rds.aliyuncs.com`(⚠️ 已关闭)
- **最大连接数**400
- **时区**Asia/Shanghai
- **白名单**172.17.0.0/16VPC网段
**数据库配置**
- **数据库名**`ai_clinical_research`
- **用户名**`airesearch`
- **密码**`Xibahe@fengzhibo117`
- **字符集**UTF8
- **排序规则**en_US.utf8
**连接字符串**
```
postgresql://airesearch:Xibahe%40fengzhibo117@pgm-2zex1m2y3r23hdn5.pg.rds.aliyuncs.com:5432/ai_clinical_research
```
⚠️ 注意:密码中的 `@` 需要URL编码为 `%40`
**数据库环境**2026-01-27更新
| 数据库 | 环境 | Schema数量 | 表数量 | 插件 | 用途 |
|--------|------|-----------|-------|------|------|
| `ai_clinical_research_test` | 测试环境(当前) | 16 | **84** | pg_bigm, pgvector | SAE测试环境 |
| `ai_clinical_research` | 生产环境(备用) | 11 | ~34 | pg_bigm, pgvector | 未来正式上线 |
**Schema架构**16个业务Schema - 测试数据库):
| Schema名称 | 功能模块 | 表数量 | 说明 |
|-----------|---------|-------|------|
| `platform_schema` | 平台核心 | 19 | 用户、权限、任务队列pg-boss |
| `aia_schema` | AI智能问答 | 3 | AI项目、对话、消息 |
| `asl_schema` | 系统文献筛查 | 7 | 项目、文献、筛查记录 |
| `pkb_schema` | 个人知识库 | 5 | 知识库、文档、批处理 |
| `dc_schema` | 数据清洗 | 6 | 工具A/B/C数据处理 |
| `iit_schema` | IIT Manager Agent | 5 | IIT项目、审计日志 |
| `agent_schema` | Agent框架 | 6 | Agent定义、会话、追踪 |
| `ekb_schema` | 企业知识库 | 3 | 知识库、文档、向量 |
| `capability_schema` | 通用能力 | 2 | Prompt模板、版本 |
| `protocol_schema` | 方案设计 | 2 | 研究方案生成 |
| `admin_schema` | 系统管理 | 2 | 操作日志 |
| `rvw_schema` | 文献回顾 | 1 | 审查任务 |
| `ssa_schema` | 智能统计分析 | 0 | 预留 |
| `st_schema` | 统计工具 | 0 | 预留 |
| `common_schema` | 公共模块 | 0 | 预留 |
| `public` | 兼容旧数据 | 2 | 旧表兼容 |
---
### 2.4 SAE Serverless应用
**命名空间**
- **命名空间ID**`cn-beijing:test-airesearch`
- **地域**华北2北京
**已部署应用列表**
| 应用名称 | 状态 | 规格 | 实例数 | 端口 | 内网地址 | 镜像版本 |
|---------|------|------|-------|------|---------|---------|
| **r-statistics-test** | ✅ 运行中 | 1核2GB | 1 | 8080 | `http://172.17.173.101:8080` | **v1.0.1** |
| **python-extraction-test** | ✅ 运行中 | **2核4GB** | 1 | 8000 | `http://172.17.173.102:8000` | **v1.2** |
| **nodejs-backend-test** | ✅ 运行中 | **2核4GB** | 1 | 3001 | `http://172.17.197.28:3001` | **v2.2** |
| **frontend-nginx-service** | ✅ 运行中 | 0.5核1GB | 1 | 80 | `http://172.17.197.29:80` | **v1.8** |
**环境变量配置**
**Node.js后端nodejs-backend-test**
```bash
NODE_ENV=production
PORT=3001
DATABASE_URL=postgresql://airesearch:Xibahe%40fengzhibo117@pgm-2zex1m2y3r23hdn5.pg.rds.aliyuncs.com:5432/ai_clinical_research?connection_limit=18&pool_timeout=10
# Python微服务地址
EXTRACTION_SERVICE_URL=http://172.17.173.66:8000
# OSS配置
OSS_ACCESS_KEY_ID=LTAI5tB2Dt3NdvBL3G7nYGv7
OSS_ACCESS_KEY_SECRET=1iSN9k39RkApP93QjUhC1DcPIeMG4V
OSS_BUCKET=ai-clinical-research
OSS_ENDPOINT=oss-cn-beijing-internal.aliyuncs.com
OSS_REGION=cn-beijing
# JWT密钥
JWT_SECRET=8a3f9e7c2d1b5a4e6f8c9d0a3b5e7f1c2a4b6c8d0e2f4a6b8c0d2e4f6a8b0c2d4
JWT_EXPIRES_IN=7d
# LLM API Keys
DEEPSEEK_API_KEY=sk-7f8cc37a79fa4799860b38fc7ba2e150
DASHSCOPE_API_KEY=sk-75b4ff29a14a49e79667a331034f3298
# CloseAI配置
CLOSEAI_API_KEY=sk-cu0iepbXYGGx2jc7BqP6ogtSWmP6fk918qV3RUdtGC3Ed1po
CLOSEAI_OPENAI_BASE_URL=https://api.openai-proxy.org/v1
CLOSEAI_CLAUDE_BASE_URL=https://api.openai-proxy.org/anthropic
# Dify配置
DIFY_API_URL=http://localhost/v1
DIFY_API_KEY=dataset-mfvdiKvQ213NvxWm7RoYMN3c
# Postgres-Only架构
QUEUE_TYPE=pgboss
CACHE_TYPE=postgres
# 企业微信配置
WECHAT_CORP_ID=ww6ab493470ab4f377
WECHAT_AGENT_ID=1000002
WECHAT_CORP_SECRET=AZIVxMtoLb0rEszXS81e4dBRl-I9kgTjygIS0cFfENU
```
**前端Nginxfrontend-nginx-service**
```bash
BACKEND_SERVICE_HOST=172.17.173.73
BACKEND_SERVICE_PORT=3001
```
**Python微服务python-extraction-test**
```bash
LOG_LEVEL=INFO
TEMP_DIR=/tmp/extraction_service
```
---
### 2.5 OSS对象存储
**Bucket信息**
- **Bucket名称**`ai-clinical-research`
- **地域**华北2北京
- **存储类型**:标准存储
- **访问控制**:私有
- **存储冗余类型**:同城冗余存储
- **内网Endpoint**`oss-cn-beijing-internal.aliyuncs.com`
- **公网Endpoint**`oss-cn-beijing.aliyuncs.com`
- **Bucket域名内网**`ai-clinical-research.oss-cn-beijing-internal.aliyuncs.com`
- **创建时间**2025-12-16 20:22
**RAM用户访问凭证**
- **RAM用户名**`oss-bucket-put-object@1991407246109125.onaliyun.com`
- **AccessKeyId**`LTAI5tB2Dt3NdvBL3G7nYGv7`
- **AccessKeySecret**`1iSN9k39RkApP93QjUhC1DcPIeMG4V`
- **UID**`203256565888301026`
- **创建时间**2025-12-16 20:31:41
⚠️ **安全警告**AccessKey是敏感信息请勿提交到公开Git仓库
**存储用途**
- `/uploads/pdfs/` - PDF文件上传
- `/uploads/docx/` - Word文档上传
- `/uploads/txt/` - 文本文件上传
- `/exports/` - 导出文件临时存储
---
### 2.6 CLB负载均衡器
**公网访问地址**
- **公网IP**`8.140.53.236`
- **访问地址**`http://8.140.53.236/`
- **域名绑定**`https://iit.xunzhengyixue.com/`(已备案)
- **后端服务器**`172.17.173.80:80`前端Nginx
- **监听端口**80HTTP
---
## 📦 三、已部署服务详情
### 3.1 PostgreSQL数据库
- **部署时间**2025-12-24
- **部署方式**`pg_dump` 全量导出 → RDS导入
- **数据迁移时长**约12秒90MB SQL文件
- **验证状态**:✅ Schema完整、数据一致、关系正确
- **备份文件**`AIclinicalresearch/rds_init_20251224_154529.sql`90MB
- **RDS自动备份**每日凌晨2点保留7天
---
### 3.2 前端Nginx服务
**当前部署版本**v1.2
**镜像信息**
- **仓库名称**`ai-clinical_frontend-nginx`
- **镜像版本**`v1.2` ✅(当前部署版本)
- **镜像大小**约50MB
- **基础镜像**`nginx:alpine`
- **构建时间**2026-01-01
- **镜像摘要**sha256:1b444d3d04e0e0e62a50009f165991b7d0192d7e21804aa9a3b3558e5aec7961
**部署状态**
- ✅ 已成功部署到SAE2026-01-01
- ✅ 服务运行正常内网地址http://172.17.173.80:80
- ✅ 企业微信域名验证文件已部署WW_verify_YnhsQBwI0ARnNoG0.txt
**v1.2版本更新内容**
- ✅ 修复Windows换行符问题docker-entrypoint.sh CRLF→LF
- ✅ 添加企业微信域名验证文件
- ⚠️ 部署后内网地址已变更172.17.173.72 → 172.17.173.80
**Git文件结构**
```
AIclinicalresearch/frontend-v2/
├── Dockerfile ✅ 已提交Git多阶段构建
├── .dockerignore ✅ 已提交Git优化构建上下文
├── nginx.conf ✅ 已提交GitNginx配置
├── docker-entrypoint.sh ✅ 已提交Git启动脚本Unix换行符
└── public/
└── WW_verify_YnhsQBwI0ARnNoG0.txt ✅ 企业微信域名验证文件
```
---
### 3.3 Node.js后端服务
**当前部署版本**v1.3
**镜像信息**
- **仓库名称**`backend-service`
- **镜像版本**`v1.3` ✅(已部署)
- **镜像大小**838MB (压缩后 ~186MB)
- **基础镜像**`node:22-alpine`
- **构建时间**2025-12-25 18:43
- **构建策略**改进版方案B本地编译+Docker打包
- **镜像摘要**sha256:a4ffb61c15af1cd1ed9de187b4464a1aab773918e5b41b4df5b8ad96514f9941
**技术架构**
- **Node.js版本**22.x
- **Prisma版本**6.17.0
- **ORM**Prisma支持多Schema
- **Web框架**Fastify
- **队列系统**pg-bossPostgres-Only架构
- **缓存系统**PostgreSQL替代Redis
**部署状态**
- ✅ 已成功部署到SAE2025-12-25 18:55
- ✅ 服务运行正常内网地址http://172.17.173.73:3001
- ✅ 健康检查通过
**Git文件结构**
```
AIclinicalresearch/backend/
├── Dockerfile ✅ 已提交Git改进版方案B本地编译+Docker打包
├── .dockerignore ✅ 已提交Git优化构建上下文
├── prisma/schema.prisma ✅ 已同步RDS32个模型+30+关系字段)
└── tsconfig.json ✅ 已优化(排除测试文件)
```
---
### 3.4 Python微服务
**当前部署版本**v1.0
**镜像信息**
- **仓库名称**`python-extraction`
- **镜像版本**`v1.0`
- **镜像大小**1.12GB
- **基础镜像**`python:3-slim`
- **构建时间**2025-12-24
**功能模块**
-**PDF文本提取**PyMuPDF 1.26.7
-**Docx文档提取**Mammoth + python-docx
-**数据清洗DC工具**pandas 2.0+ / numpy 1.24+ / polars 0.19+
-**语言检测**langdetect
-**Nougat OCR**已移除减小镜像1.5GB
**部署状态**
- ✅ 已部署到SAE2025-12-24
- ✅ 应用运行正常2个worker进程
- ✅ 内网访问地址:`http://172.17.173.66:8000`
- ✅ 健康检查通过
**Git文件结构**
```
AIclinicalresearch/extraction_service/
├── Dockerfile ✅ 已提交Git多阶段构建 + 阿里云源)
├── .dockerignore ✅ 已提交Git优化构建上下文
└── requirements-prod.txt ✅ 已提交Git精简依赖列表
```
---
## 🔄 四、部署历史记录
### 2026-02-270227部署 - 数据库迁移 + R统计引擎 + Python更新
#### 部署概览
- **部署时间**2026-02-27
- **部署范围**数据库Schema迁移、R统计引擎全新部署、Python微服务更新
- **主要变更**6个Prisma迁移含1个drift补丁、新增R Docker服务、Python新增scipy
#### 数据库迁移
- ✅ 应用 5 个业务迁移 + 1 个drift补丁迁移
- ✅ RDS 表数量从 63 增至 84新增 21 张表)
- ✅ 同步 Seed 数据SSA工具库 13条 + IIT技能库 8条
- ✅ 已有数据完整性验证通过Prompt模板、用户数据零丢失
#### R统计引擎全新部署
- ✅ 镜像构建并推送:`ssa-r-statistics:v1.0.1`~1.8GB
- ✅ SAE应用创建`r-statistics-test`1核2GB
- ✅ 内网地址:`http://172.17.173.101:8080`
- ✅ 内置 13 个统计工具描述统计、T检验、卡方检验、回归、Meta分析等
- ✅ 健康检查配置完成HTTP /health
#### Python微服务更新v1.1 → v1.2
- ✅ 新增依赖scipyRVW V2.0 数据取证)
- ✅ 新增代码forensics 数据取证模块
- ✅ 实例规格升级1核2GB → 2核4GB
- ✅ 内网地址变更:`172.17.173.84``172.17.173.102`
#### 文档产出
-`0227部署/01-数据库迁移方案.md`
-`0227部署/02-部署完成总结.md`
-`00-阿里云SAE最新真实状态记录.md`(更新)
---
### 2026-01-270126部署 - 数据库升级 + 全量服务更新)🎉
#### 部署概览
- **部署时间**2026-01-26 ~ 2026-01-27跨2天
- **部署范围**数据库、Python、后端、前端全量更新
- **主要变更**数据库插件、环境分离、代码恢复、ES Module修复
#### 数据库升级
- ✅ 创建测试数据库 `ai_clinical_research_test`
- ✅ 安装 pg_bigm 插件v1.2,中文全文检索)
- ✅ 安装 pgvector 插件v0.8.0,向量存储)
- ✅ 本地数据库迁移到RDS17.51MB63个表16个Schema
- ✅ Prisma Schema同步63个模型
- ✅ 两个数据库都安装插件
#### Python微服务更新v1.0 → v1.1
- ✅ 新增依赖pymupdf4llm替代nougat、openpyxl、pypandoc、python-pptx
- ✅ Dockerfile添加pandoc系统依赖
- ✅ SAE部署成功新IP172.17.173.84
#### Node.js后端更新v1.3 → v1.7
- ✅ 修复pino-pretty生产环境错误条件加载
- ✅ 修复ES Module导入路径添加.js扩展名
- ✅ 环境变量更新DATABASE_URL、EXTRACTION_SERVICE_URL、OSS配置
- ✅ 移除废弃变量REDIS_URL、DIFY_API_URL、DIFY_API_KEY
- ✅ SAE部署成功新IP172.17.173.89
#### 前端Nginx更新v1.2 → v1.3
- ✅ 修复Dockerfile构建跳过TypeScript类型检查
- ✅ 代码恢复(从本地备份恢复空文件)
- ✅ 环境变量更新BACKEND_SERVICE_HOST
- ✅ SAE部署成功新IP172.17.173.90
#### 解决的关键问题
1. ✅ 大量空文件恢复(前端/后端)
2. ✅ Prisma Schema与数据库不一致
3. ✅ pino-pretty在生产环境失败
4. ✅ ES Module导入路径缺少.js扩展名
5. ✅ TypeScript类型检查阻塞构建
#### 文档产出
- ✅ 部署总体计划
- ✅ 数据库升级方案
- ✅ OSS环境配置方案
- ✅ Python/后端/前端部署方案
- ✅ IIT回调地址修复方案
- ✅ 0126部署状态真实记录
- ✅ 数据库开发规范v2.0
#### 部署成果
- 🎉 数据库成功分离测试/生产环境
- 🎉 全量服务更新至最新代码
- 🎉 所有关键Bug已修复
- 🎉 完整部署文档体系建立
---
### 2026-01-01前端v1.2部署 - 企业微信域名验证)✅
#### 部署背景
- **目的**:为企业微信接入配置可信域名,需要在前端根目录部署域名验证文件
- **域名**https://iit.xunzhengyixue.com/
- **验证文件**WW_verify_YnhsQBwI0ARnNoG0.txt
#### 部署过程与问题修复
1. **问题发现**前端v1.1部署失败,容器启动后立即退出
- ❌ 现象SAE日志为空容器状态显示"崩溃或退出"
- ❌ 错误:`exec /docker-entrypoint.sh: no such file or directory`
2. **根本原因分析**
- 🔍 `docker-entrypoint.sh` 使用了Windows换行符CRLF `\r\n`
- 🔍 Linux容器的bash解释器无法识别CRLF格式的脚本
- 🔍 这是一个典型的跨平台开发问题
3. **解决方案**
- ✅ 将 `docker-entrypoint.sh` 转换为Unix换行符LF `\n`
- ✅ 使用PowerShell命令批量转换
- ✅ 本地Docker测试验证通过
4. **镜像构建与推送**
- ✅ 重新构建镜像标记为v1.223.7秒)
- ✅ 推送到ACR成功digest: 1b444d3d...
- ✅ 镜像包含企业微信验证文件
5. **SAE部署成功**
- ✅ 部署镜像版本v1.2
- ✅ 环境变量配置:`BACKEND_SERVICE_HOST=172.17.173.73`, `BACKEND_SERVICE_PORT=3001`
- ✅ 容器启动正常,健康检查通过
- ✅ 新内网地址:`http://172.17.173.80:80`
- ⚠️ IP地址变化172.17.173.72 → 172.17.173.80
#### 技术要点总结
1. **Windows换行符问题**
- 原因Git在Windows上默认转换为CRLF
- 解决:使用 `.gitattributes` 或手动转换
- 验证:`(Get-Content file -Raw) -match "\`r\`n"`
2. **容器调试技巧**
- 本地测试:`docker run --rm -e KEY=VALUE image:tag`
- 查看日志:`docker logs container_name`
- 进入容器:`docker exec -it container sh`
3. **SAE部署最佳实践**
- 环境变量必须配置完整
- 本地先验证镜像可正常运行
- 部署后IP可能变化需要更新依赖服务的配置
#### 部署结果
- ✅ 前端服务v1.2部署成功
- ✅ 企业微信验证文件可访问
- ✅ 系统整体运行正常
- ⚠️ 需要注意:内网地址已更新,依赖前端的服务需要调整配置
---
### 2025-12-25完整部署成功日🎉
#### 上午Node.js后端部署
- ✅ Node.js后端成功部署到SAEv1.3
- ✅ 修复Alpine Linux bash路径问题/bin/bash → /bin/sh
- ✅ 修复config目录缺失问题Dockerfile补充COPY config
- ✅ 修复pino-pretty生产环境问题条件启用
- ✅ 修复healthCheck ES Module兼容性require → import
- ✅ 生成强JWT密钥64位十六进制
#### 中午前端Nginx部署
- ✅ 前端Nginx成功部署到SAEv1.0
- ✅ 前端服务运行正常内网地址http://172.17.173.72:80
- ✅ 前端到后端代理验证通过
- ✅ 完整链路测试通过(前端→后端→数据库)
#### 下午环境变量修复与CLB配置
- ✅ 发现工具C的7大功能报错connect ECONNREFUSED 127.0.0.1:8000
- ✅ 排查并修复关键问题:环境变量名错误
- 代码使用:`EXTRACTION_SERVICE_URL`
- 错误配置:`PYTHON_SERVICE_URL`
- 正确配置:`EXTRACTION_SERVICE_URL=http://172.17.173.66:8000`
- ✅ Node.js后端重新部署IP地址更新为http://172.17.173.73:3001
- ✅ 更新前端Nginx环境变量BACKEND_SERVICE_HOST=172.17.173.73
- ✅ 配置CLB负载均衡器获得公网访问地址http://8.140.53.236/
- ✅ 工具C的7大功能全部测试通过
- ✅ 文献筛查模块测试通过
- ✅ 完整系统部署成功验证 🎉
---
### 2025-12-24初始部署
- ✅ PostgreSQL数据库部署完成
- ✅ 前端Nginx Docker镜像构建并推送至ACR
- ✅ Python微服务Docker镜像构建并推送至ACR
- ✅ Python微服务成功部署到SAE内网地址172.17.173.66:8000
- ✅ 解决ACR镜像拉取权限问题配置镜像仓库认证
- ✅ Node.js后端Prisma反向同步完成32个模型手动补全30+关系字段)
- ✅ Node.js后端TypeScript编译修复完成修复200+错误→0错误
- ✅ Node.js后端Docker镜像构建成功838MB改进版方案B
- ✅ Node.js后端镜像推送至ACRv1.0
---
> **提示**本文档记录SAE服务器的最新真实状态每次部署后必须更新
> **最后更新**2026-02-27
> **当前版本**前端v1.8 | 后端v2.1 | Python v1.2 | R统计v1.0.1 | PostgreSQL 15