Files
AIclinicalresearch/docs/05-部署文档/12-Node.js后端-SAE部署操作手册.md
HaHafeng 1b53ab9d52 feat(aia): Complete AIA V2.0 with universal streaming capabilities
Major Changes:
- Add StreamingService with OpenAI Compatible format
- Upgrade Chat component V2 with Ant Design X integration
- Implement AIA module with 12 intelligent agents
- Update API routes to unified /api/v1 prefix
- Update system documentation

Backend (~1300 lines):
- common/streaming: OpenAI Compatible adapter
- modules/aia: 12 agents, conversation service, streaming integration
- Update route versions (RVW, PKB to v1)

Frontend (~3500 lines):
- modules/aia: AgentHub + ChatWorkspace (100% prototype restoration)
- shared/Chat: AIStreamChat, ThinkingBlock, useAIStream Hook
- Update API endpoints to v1

Documentation:
- AIA module status guide
- Universal capabilities catalog
- System overview updates
- All module documentation sync

Tested: Stream response verified, authentication working
Status: AIA V2.0 core completed (85%)
2026-01-14 19:15:01 +08:00

523 lines
12 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.
# Node.js <20>𡒊垢 - SAE<41>函蔡<E587BD><EFBFBD><E6BBA2><EFBFBD>
> **<2A>𥕦遣<F0A595A6>園𡢿**嚗?025-12-24
> **<2A><EFBFBD>撖寡情**嚗鐭ode.js <20>𡒊垢<F0A1928A>滚𦛚
> **<2A>函蔡<E587BD><EFBFBD>**嚗𡁻燵<F0A181BB><EFBFBD> SAE嚗𠄎erverless摨𠉛鍂撘閙<E69298>嚗?
> **憸<><EFBFBD>園𡢿**嚗?0-40<34><30><EFBFBD>
---
## <20><> <20>滨蔭璉<E894AD><E79289>?
<EFBFBD>憪衤<EFBFBD><EFBFBD><EFBFBD>霂瑞霈歹<EFBFBD>
- [x] Docker<65>𨅯<EFBFBD>撌脫綫<E884AB><E7B6AB><EFBFBD>ACR嚗䫤backend-service:v1.0`
- [x] RDS PostgreSQL撌脤<E6928C>蝵脣僎餈<E5838E><EFBFBD>唳旿
- [x] Python敺格<E695BA><E6A0BC><E288AA>函蔡嚗<E894A1><E59A97>蝵穃𧑐<E7A983><F0A79190>嚗䫤http://172.17.173.66:8000`嚗?
- [x] <20><EFBFBD><E887AC><EFBFBD><E3979B>滨蔭皜<E894AD><E79A9C>撌脣<E6928C><EFBFBD><E686AD>閫?`11-Node.js<6A>𡒊垢-SAE<41>函蔡<E587BD>滨蔭皜<E894AD><E79A9C>.md`嚗?
---
## <20><> 蝚砌<E89D9A>甇伐<E79487><E4BC90><EFBFBD>SAE<41><EFBFBD><E689B9>啣僎<E595A3>𥕦遣摨𠉛鍂
### 1.1 餈𥕦<E9A488>SAE<41><EFBFBD><E689B9>?
1. <20><EFBFBD>瘚讛<E7989A><E8AE9B><EFBFBD>霈輸䔮嚗冴ttps://sae.console.aliyun.com/
2. <20>㗇𥋘<E39787><EFBFBD>嚗?*<2A>𤾸<EFBFBD>2嚗<32><E59A97>鈭穿<E988AD>**
3. <20>㗇𥋘<E39787><EFBFBD>蝛粹𡢿嚗?*cn-beijing:test-airesearch**
### 1.2 <20>𥕦遣<F0A595A6><EFBFBD><E595A3>?
1. <20>孵稬<E5ADB5>𣂼<EFBFBD>撱箏<E692B1><E7AE8F><EFBFBD><EFBFBD><E78390>?
2. 憛怠<E6869B><E680A0>箸𧋦靽⊥<E99DBD>嚗?
```yaml
摨𠉛鍂<EFBFBD>滨妍: nodejs-backend-test
<EFBFBD>函蔡<EFBFBD><EFBFBD>: 摰孵膥<EFBFBD>𨅯<EFBFBD>
```
3. <20>孵稬<E5ADB5>𣂷<EFBFBD><EFBFBD>甇乓<E79487>?
---
## <20>閦 蝚砌<E89D9A>甇伐<E79487><E4BC90>滨蔭摰孵膥<E5ADB5>𨅯<EFBFBD>
### 2.1 <20>㗇𥋘<E39787>𨅯<EFBFBD><F0A885AF><EFBFBD>
1. <20>𨅯<EFBFBD>蝐餃<E89D90>嚗𡁻<E59A97>㗇𥋘 **摰孵膥<E5ADB5>𨅯<EFBFBD><F0A885AF>滚𦛚嚗㇁CR嚗?*
2. <20>㗇𥋘摰硺<E691B0>嚗?*銝芯犖<E88AAF>?*
3. <20>㗇𥋘<E39787><EFBFBD>嚗?*<2A>𤾸<EFBFBD>2嚗<32><E59A97>鈭穿<E988AD>**
### 2.2 <20>滨蔭<E6BBA8>𨅯<EFBFBD>隞枏<E99A9E>霈方<E99C88>
<EFBFBD>𩤃<EFBFBD> **<EFBFBD><EFBFBD>**嚗𡁜<E59A97>憿餃<E686BF><E9A483>滨蔭霈方<E99C88><EFBFBD><EFBFBD><EFBFBD>瘜閙<E7989C><E99699>𣇉<EFBFBD><F0A38789><EFBFBD><E58EB0>?
1. <20>孵稬<E5ADB5><EFBFBD>蝵桅<E89DB5><E6A185><EFBFBD>摨瓐<E691A8>?
2. 憛怠<E6869B>霈方<E99C88>靽⊥<E99DBD>嚗?
```yaml
Registry<EFBFBD><EFBFBD>: crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com
<EFBFBD><EFBFBD><EFBFBD>? gofeng117@163.com
<EFBFBD><EFBFBD>: fengzhibo117
```
3. <20>孵稬<E5ADB5>摰𠾼<E691B0>?
4. <20>孵稬<E5ADB5><EFBFBD><EFBFBD>恕霂<E68195><E99C82>𡢅<EFBFBD>蝖桐<E89D96>霈方<E99C88><E696B9>𣂼<EFBFBD>
### 2.3 <20>㗇𥋘<E39787>𨅯<EFBFBD>
1. <20>㗇𥋘<E39787><EFBFBD>蝛粹𡢿嚗?*ai-clinical**
2. <20>㗇𥋘<E39787>𨅯<EFBFBD>嚗?*backend-service**
3. <20>㗇𥋘<E39787>𨅯<EFBFBD><F0A885AF><EFBFBD>𧋦嚗?*v1.0**
摰峕㟲<EFBFBD>𨅯<EFBFBD><EFBFBD><EFBFBD>摨娍遬蝷箔蛹嚗?
```
crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/backend-service:v1.0
```
4. <20>孵稬<E5ADB5>𣂷<EFBFBD><EFBFBD>甇乓<E79487>?
---
## <20><EFBFBD> 蝚砌<E89D9A>甇伐<E79487><E4BC90>滨蔭摨𠉛鍂<F0A0899B><E98D82>
### 3.1 <20><EFBFBD><E7AE87>滨蔭
```yaml
摨𠉛鍂摰硺<EFBFBD><EFBFBD>? 1
CPU: 1<EFBFBD>?
<EFBFBD><EFBFBD><EFBFBD>: 2048 MB嚗?GB嚗?
摨𠉛鍂蝐餃<EFBFBD>: Web摨𠉛鍂
```
### 3.2 蝵𤑳<E89DB5><F0A491B3>滨蔭
1. **VPC<50>滨蔭**嚗?
- VPC ID嚗䫤vpc-2ze055cptkew9c38w4r06`
- 摰匧<E691B0><EFBFBD><E89D8F>`sg-2zedk6fi8sgmmcwdu7tu`
- <20><EFBFBD><EFBFBD>鞱䌊<E99EB1><EFBFBD><E585B8><EFBFBD>蝵騌LB<4C>𡢅<EFBFBD><F0A1A285>?銝滚㗲<E6BB9A><EFBFBD><EFBFBD><E99A9E>蝵𤏸挪<F0A48FB8><EFBFBD>
2. **蝡臬藁<E887AC>滨蔭**嚗?
- 摰孵膥蝡臬藁嚗䫤3001`
- <20>讛悅嚗䫤TCP`
### 3.3 <20><EFBFBD><E887AC><EFBFBD><E3979B>滨蔭
<EFBFBD>𩤃<EFBFBD> **<EFBFBD>喲睸甇仿炊**嚗𡁜<E59A97><F0A1819C>?`11-Node.js<6A>𡒊垢-SAE<41>函蔡<E587BD>滨蔭皜<E894AD><E79A9C>.md` 銝剔<E98A9D><E58994><EFBFBD><E887AC><EFBFBD>
**<EFBFBD><EFBFBD>A嚗𡁏鸌<EFBFBD>誩紡<EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗?*
1. <20>孵稬<E5ADB5>鞉鸌<E99E89>誩紡<E8AAA9><EFBFBD>?
2. 憭滚<E686AD>隞乩<E99A9E><E4B9A9><EFBFBD>捆蝎䁅斐嚗?
```env
DATABASE_URL=postgresql://airesearch:Xibahe%40fengzhibo117@pgm-2zex1m2y3r23hdn5.pg.rds.aliyuncs.com:5432/ai_clinical_research?connection_limit=18&pool_timeout=10
JWT_SECRET=146c2fd064a69aa026496ee60e20483d07e951eae8323a501126469583433415
JWT_EXPIRES_IN=7d
DEEPSEEK_API_KEY=sk-7f8cc37a79fa4799860b38fc7ba2e150
DASHSCOPE_API_KEY=sk-75b4ff29a14a49e79667a331034f3298
CLOSEAI_API_KEY=sk-cu0ienbXYGGx2jc7BqP6ogtSWmP6fk918qV3RUdtGC3Ed1po
CLOSEAI_OPENAI_BASE_URL=https://api.openai-proxy.org/v1
CLOSEAI_CLAUDE_BASE_URL=https://api.openai-proxy.org/anthropic
DIFY_API_URL=http://localhost/v1
DIFY_API_KEY=dataset-mfvdiKvQ2l3NvxWm7RoYMN3c
PORT=3001
NODE_ENV=production
QUEUE_TYPE=pgboss
CACHE_TYPE=postgres
OSS_REGION=oss-cn-beijing
OSS_BUCKET=ai-clinical-research
OSS_ACCESS_KEY_ID=LTAI5tB2Dt3NdvBL3G7nYGv7
OSS_ACCESS_KEY_SECRET=1iSN9k39RkApP93QjUhC1DcPIeMG4V
OSS_ENDPOINT=oss-cn-beijing-internal.aliyuncs.com
PYTHON_SERVICE_URL=http://172.17.173.66:8000
LOG_LEVEL=info
```
3. <20>孵稬<E5ADB5>摰𠾼<E691B0>?
**<EFBFBD><EFBFBD>B嚗𡁻<EFBFBD>𣂷葵瘛餃<EFBFBD>**嚗<><E59A97><EFBFBD>𨀣鸌<F0A880A3>誩紡<E8AAA9><EFBFBD><E4B9A9>舐鍂嚗?
<EFBFBD>函㴓憓<EFBFBD><EFBFBD><EFBFBD>讛”<EFBFBD>潔葉<EFBFBD>𣂷葵瘛餃<EFBFBD><EFBFBD><EFBFBD><EFBFBD>?`11-Node.js<6A>𡒊垢-SAE<41>函蔡<E587BD>滨蔭皜<E894AD><E79A9C>.md` 銝剔<E98A9D>銵冽聢<E586BD>?
### 3.4 <20>臬𢆡<E887AC>賭誘<E8B3AD>滨蔭
1. <20><EFBFBD>𣂼鍳<F0A382BC>典𦶢隞扎<E99A9E>睲葉憛怠<E6869B>嚗?
```bash
node dist/server.js
```
**霂湔<E99C82>**嚗?
- <20>?銝漤<E98A9D>閬?`npm start`<EFBFBD><EFBFBD><EFBFBD>誩歇蝏讐<EFBFBD>霂穃末嚗?
- <20>?銝漤<E98A9D>閬?`prisma migrate`<EFBFBD><EFBFBD>桀歇撖澆<EFBFBD>嚗?
- <20>?銝漤<E98A9D>閬?`prisma generate`<EFBFBD><EFBFBD><EFBFBD>𤩺<EFBFBD>撱箸𧒄撌脩<EFBFBD><EFBFBD><EFBFBD>
### 3.5 <20>亙熒璉<E78692><E79289>仿<EFBFBD>蝵?
1. <20><EFBFBD><EFBFBD>𣂼鍳<F0A382BC><EFBFBD>摨瑟<E691A8><E7919F><EFBFBD>?
2. <20>滨蔭<E6BBA8><E894AD>㺭嚗?
```yaml
<EFBFBD><EFBFBD>交䲮撘? HTTP霂瑟<E99C82>
霂瑟<EFBFBD>頝臬<EFBFBD>: /health
蝡臬藁: 3001
<EFBFBD><EFBFBD>撱嗉<EFBFBD>: 30蝘?
<EFBFBD><EFBFBD>仿𡢿<EFBFBD>? 10蝘?
<EFBFBD>𧒄<EFBFBD>園𡢿: 3蝘?
銝滚<EFBFBD>摨琿<EFBFBD><EFBFBD>? 3甈?
<EFBFBD>亙熒<EFBFBD><EFBFBD><EFBFBD>? 2甈?
```
**銝箔<E98A9D><EFBFBD><E98A8B>憪见辣餈蠘挽蝵?0蝘𡜐<E89D98>**
- Node.js摨𠉛鍂<F0A0899B>臬𢆡<E887AC><F0A286A1>閬?0-15蝘?
- Prisma Client<6E><EFBFBD><E598A5><EFBFBD>閬?-10蝘?
- <20>唳旿摨栞<E691A8><E6A09E><EFBFBD>撱箇<E692B1><E7AE87><EFBFBD>閬?蝘?
- <20><EFBFBD>雿䠷<E99BBF>嚗屸<E59A97><E5B1B8><EFBFBD><E79488>摨瑟<E691A8><E7919F>亙仃韐?
3. <20>孵稬<E5ADB5>𣂷<EFBFBD><EFBFBD>甇乓<E79487>?
---
## <20><> 蝚砍<E89D9A>甇伐<E79487>蝖株恕<E6A0AA>滨蔭撟園<E6929F>蝵?
### 4.1 璉<><E79289>仿<EFBFBD>蝵格<E89DB5>閬?
<EFBFBD>霈日△<EFBFBD><EFBFBD>隞𠉛<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
- [x] <20>𨅯<EFBFBD><F0A885AF><EFBFBD><EFBFBD>嚗䫤backend-service:v1.0`
- [x]<><E99F8F><EFBFBD>滨蔭甇<E894AD>嚗?<3F>?GB
- [x] <20><EFBFBD><E887AC><EFBFBD><E3979B><EFBFBD>嚗?1銝迎<E98A9D><E8BF8E>臭誑<E887AD>孵稬<E5ADB5><EFBFBD>霂行<E99C82>嚗?
- [x] <20>亙熒璉<E78692><E79289>亥楝敺<E6A59D><E695BA>`/health`
- [x] <20>臬𢆡<E887AC>賭誘嚗䫤node dist/server.js`
### 4.2 撘<>憪钅<E686AA>蝵?
1. <20>孵稬<E5ADB5>𣂼<EFBFBD>撱箏<E692B1><E7AE8F><EFBFBD>?
2. 蝑匧<E89D91><E58CA7>函蔡嚗<E894A1>漲3-5<><35><EFBFBD>嚗?
**<EFBFBD>函蔡餈<EFBFBD><EFBFBD>**嚗?
```
1. <20><EFBFBD><E58CA7>𨅯<EFBFBD>嚗?<3F><><EFBFBD>嚗?
2. <20>𥕦遣摰孵膥摰硺<E691B0>嚗?<3F><><EFBFBD>嚗?
3. <20>臬𢆡摨𠉛鍂嚗?0蝘𡜐<E89D98>
4. <20><EFBFBD><E689AF>亙熒璉<E78692><E79289><EFBFBD>30蝘𡜐<E89D98>
```
---
## <20>?蝚砌<E89D9A>甇伐<E79487><E4BC90>函蔡撉諹<E69289>
### 5.1 璉<><E79289><EFBFBD><E4BA99>函𠶖<E587BD>?
1. <20>沒AE摨𠉛鍂<F0A0899B>𡑒”銝哨<E98A9D><E593A8><EFBFBD> `nodejs-backend-test`
2. <20><EFBFBD><E4BAA6><EFBFBD><E59786><EFBFBD>
- <20>?摰硺<E691B0><E7A1BA><EFBFBD><E59786><EFBFBD>**餈鞱<E9A488>銝?*嚗<><EFBFBD><EFBFBD>
- <20>?<3F>亙熒璉<E78692><E79289><EFBFBD>**<2A><EFBFBD>**嚗<><EFBFBD><EFBFBD>
- <20>?憒<><E68692><EFBFBD>曄內"撘<>虜"<22>?<3F><EFBFBD><EFBFBD>"嚗諹<E59A97><E8ABB9>亦洵<E4BAA6>剜郊<E5899C>埝䰻
### 5.2 <20><EFBFBD>摰墧𧒄<E5A2A7><EFBFBD>
1. <20>孵稬摨𠉛鍂<F0A0899B>滨妍嚗諹<E59A97><E8ABB9><EFBFBD><E4BA99>刻祕<E588BB>?
2. <20>孵稬<E5ADB5>鞉𠯫敹𨰜<E695B9><EFBFBD><E78897>𣂼<EFBFBD><F0A382BC>嗆𠯫敹𨰜<E695B9>?
3. <20>交𪄳隞乩<E99A9E><E4B9A9>喲睸靽⊥<E99DBD>嚗?
**<EFBFBD>?<3F>𣂼<EFBFBD><F0A382BC><EFBFBD>𠯫敹㛖內靘?*嚗?
```
============================================================
<EFBFBD><EFBFBD> AI銝游<E98A9D><E6B8B8>𠉛弦撟喳蝱 - <20>𡒊垢<F0A1928A>滚𦛚<E6BB9A>典鍳<E585B8><EFBFBD><E586BD><EFBFBD><EFBFBD>
============================================================
<EFBFBD><EFBFBD> <20>滚𦛚<E6BB9A><EFBFBD>: http://0.0.0.0:3001
<EFBFBD><EFBFBD> <20>亙熒璉<E78692><E79289>? http://0.0.0.0:3001/health
<EFBFBD>摱 API<50>亙藁: http://0.0.0.0:3001/api/v1
<EFBFBD><EFBFBD> 餈鞱<E9A488><E99EB1><EFBFBD>: production
============================================================
[INFO] Server listening at http://0.0.0.0:3001
[INFO] Database connected: ai_clinical_research
[INFO] Health check endpoint available: /health
```
**<EFBFBD>?憭梯揖<E6A2AF><E68F96>𠯫敹㛖內靘?*嚗?
```
[ERROR] Database connection failed: connect ETIMEDOUT
[ERROR] Prisma Client initialization failed
[ERROR] Application startup failed
```
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>躰秤嚗諹<EFBFBD><EFBFBD>亦洵<EFBFBD>剜郊<EFBFBD>埝䰻<EFBFBD>?
### 5.3 <20><EFBFBD><E79195><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
1. <20><EFBFBD><E585B8>刻祕<E588BB><E7A595>△嚗峕𪄳<E5B395><EFBFBD>𣂼抅<F0A382BC>砌縑<E7A08C><EFBFBD>?
2. 憭滚<E686AD><E6BB9A><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗峕聢撘讐掩隡潘<E99AA1>`http://172.17.x.x:3001`
3. 霈啣<E99C88><E595A3><EFBFBD>蝵脫<E89DB5><EFBFBD>
**蝷箔<E89DB7><E7AE94><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**嚗?
```
http://172.17.173.88:3001
```
### 5.4 瘚贝<E7989A><E8B49D>亙熒璉<E78692><E79289>?
<EFBFBD>沒AE<EFBFBD><EFBFBD><EFBFBD>𨔽ebshell<EFBFBD>睲葉<EFBFBD><EFBFBD>嚗?
```bash
# 瘚贝<E7989A><E8B49D>亙熒璉<E78692><E79289>?
curl http://172.17.173.88:3001/health
# <20><><EFBFBD>餈𥪜<E9A488>嚗𠃍TTP 200嚗㚁<E59A97>
{
"status": "ok",
"timestamp": "2025-12-24T12:00:00.000Z",
"database": "connected",
"uptime": 123,
"environment": "production"
}
```
### 5.5 瘚贝<E7989A><E8B49D>唳旿摨栞<E691A8><E6A09E>?
```bash
# 瘚贝<E7989A><E8B49D><EFBFBD>API嚗<49><E59A97><EFBFBD>𨀣<EFBFBD><F0A880A3>唳旿嚗?
curl http://172.17.173.88:3001/api/v1/users \
-H "Authorization: Bearer test-token"
# <20>𡝗<EFBFBD>霂訫<E99C82>隞硋歇<E7A18B>丕PI蝡舐<E89DA1>
```
---
## <20>圲 蝚砍<E89D9A>甇伐<E79487><E4BC90><EFBFBD><EFBFBD><EFBFBD>埝䰻嚗<E4B0BB><EFBFBD><EFBFBD>
### <20><EFBFBD>1嚗𡁜<E59A97>摨瑟<E691A8><E7919F><EFBFBD><E4B9A9>游仃韐?
**<EFBFBD><EFBFBD>𠶖**嚗𡁜<E59A97><F0A1819C>函𠶖<E587BD><F0A0B696>遬蝷?撘<>虜"嚗<><E59A97>靘钅<E99D98><EFBFBD><E89D9C><EFBFBD>?
**<EFBFBD>埝䰻甇仿炊**嚗?
1. **璉<><E79289>交𠯫敹𦯀葉<F0A6AF80><E89189><EFBFBD>霂臭縑<E887AD>?*嚗?
```bash
# <20>沒AE摰墧𧒄<E5A2A7><EFBFBD>銝剜䰻<E5899C><EFBFBD><E69B89><EFBFBD>霂?
[ERROR] ...
```
2. **撣貉<E692A3><E8B289><EFBFBD><E7AC94>𡃏圾<F0A1838F>單䲮獢?*嚗?
| <20>躰秤靽⊥<E99DBD> | <20><EFBFBD> | 閫<><E996AB><EFBFBD><EFBFBD> |
|---------|------|---------|
| `connect ETIMEDOUT` | <20>唳旿摨栞<E691A8><E6A09E><EFBFBD><E4BAA5>?| 璉<><E79289>充DS<44><EFBFBD><E8B3A2>𨰻<EFBFBD><F0A8B0BB>PC<50>滨蔭 |
| `authentication failed` | <20>唳旿摨枏<E691A8><E69E8F><EFBFBD><EFBFBD>霂?| 璉<><E79289>主ATABASE_URL銝剔<E98A9D><EFBFBD><E69296>蝻𣇉<E89DBB> |
| `ENOENT: no such file or directory` | <20>臬𢆡<E887AC>賭誘<E8B3AD>躰秤 | 蝖株恕<E6A0AA>臬𢆡<E887AC>賭誘銝?`node dist/server.js` |
| `Cannot find module 'prisma'` | Prisma Client<6E><EFBFBD><E88AB0>?| <20>齿鰵<E9BDBF><E9B0B5><EFBFBD>𨅯<EFBFBD> |
| `Port 3001 already in use` | 蝡臬藁<E887AC><EFBFBD> | 璉<><E79289>亙捆<E4BA99>函垢<E587BD><E59EA2><EFBFBD>蝵?|
3. **撉諹<E69289><E8ABB9>唳旿摨栞<E691A8><E6A09E>?*嚗?
```bash
# <20>沒AE<41><45>ebshell銝剜<E98A9D>霂?
curl -v telnet://pgm-2zex1m2y3r23hdn5.pg.rds.aliyuncs.com:5432
```
### <20><EFBFBD>2嚗𡁻<E59A97><F0A181BB>𤩺<EFBFBD><F0A4A9BA>硋仃韐?
**<2A><>𠶖**嚗𡁏𠯫敹埈遬蝷?`Failed to pull image`
**閫<><E996AB><EFBFBD><EFBFBD>**嚗?
1. 璉<><E79289>丕CR霈方<E99C88><E696B9>滨蔭嚗?
- Registry<72><EFBFBD><E595A3>臬炏甇<E7828F>嚗ĀPC<50><EFBFBD>嚗?
- <20><EFBFBD><E586BD><EFBFBD><E6BB9A><EFBFBD><EFBFBD>行迤蝖?
2. <20>齿鰵<E9BDBF>滨蔭<E6BBA8>𨅯<EFBFBD>隞枏<E99A9E>霈方<E99C88>嚗?
- SAE摨𠉛鍂霂行<E99C82> <20>?<3F>滨蔭蝞∠<E89D9E> <20>?<3F>𨅯<EFBFBD>霈曄蔭
- <20>齿鰵颲枏<E9A2B2>霈方<E99C88>靽⊥<E99DBD>
### <20><EFBFBD>3嚗𡁶㴓憓<E3B493><E68693><EFBFBD>𤩺𧊋<F0A4A9BA><F0A78A8B><EFBFBD>
**<2A><>𠶖**嚗𡁜<E59A97><F0A1819C><EFBFBD>銝箔<E98A9D><EFBFBD><E686B8>銝滨泵
**<2A>埝䰻甇仿炊**嚗?
1. <20>沒AE摨𠉛鍂霂行<E99C82> <20>?<3F><EFBFBD><E887AC><EFBFBD>銝哨<E98A9D>蝖株恕<E6A0AA><E68195><EFBFBD><EFBFBD><E58CA7>誩歇<E8AAA9>滨蔭
2. <20>汾ebshell銝剜䰻<E5899C>讠㴓憓<E3B493><E68693><EFBFBD>𧶏<EFBFBD>
```bash
env | grep DATABASE_URL
env | grep JWT_SECRET
```
### <20><EFBFBD>4嚗𡁜<E59A97>摮䀝<E691AE>頞喉<E9A09E>OOM嚗?
**<2A><>𠶖**嚗𡁜<E59A97><F0A1819C><EFBFBD><EFBFBD><E89D9C><EFBFBD><EFBFBD><E88D94><EFBFBD>銝剖枂<E58996>?`Out of Memory`
**閫<><E996AB><EFBFBD><EFBFBD>**嚗?
1. <20>沒AE摨𠉛鍂霂行<E99C82> <20>?<3F>箸𧋦<E7AEB8>滨蔭銝哨<E98A9D><EFBFBD><E692A0>摮䁅<E691AE><E48185>港蛹 **2<>?GB**
2. <20>齿鰵<E9BDBF>函蔡摨𠉛鍂
---
## <20><> 蝚砌<E89D9A>甇伐<E79487><E4BC90><EFBFBD><E689AF>烐綉
### 7.1 <20><EFBFBD><E4BAA6>烐綉<E78390><E7B689><EFBFBD>
<EFBFBD>沒AE摨𠉛鍂霂行<EFBFBD> <20>?<3F>烐綉銝哨<E98A9D><E593A8>單釣隞乩<E99A9E><E4B9A9><EFBFBD><EFBFBD>嚗?
```yaml
CPU雿輻鍂<EFBFBD>? 摨?< 70%
<EFBFBD><EFBFBD><EFBFBD>雿輻鍂<EFBFBD>? 摨?< 80%
摰硺<EFBFBD><EFBFBD>亙熒<EFBFBD><EFBFBD>? 摨𥪯<E691A8><F0A5AAAF>?<3F>亙熒"
霂瑟<EFBFBD><EFBFBD><EFBFBD><EFBFBD>園𡢿: 摨?< 1000ms
```
### 7.2 霈曄蔭<E69B84>𡃏郎
撱箄悅<EFBFBD>滨蔭隞乩<EFBFBD><EFBFBD>𡃏郎嚗?
```yaml
CPU雿輻鍂<EFBFBD>?> 80%: <20><EFBFBD><E785BE><EFBFBD>霅?
<EFBFBD><EFBFBD><EFBFBD>雿輻鍂<EFBFBD>?> 90%: <20><EFBFBD><E785BE><EFBFBD>霅?
摰硺<EFBFBD>銝滚<EFBFBD>摨? 蝡见朖<E8A781><EFBFBD><E785BE><EFBFBD>霅?
```
---
## <20><> 蝚砍<E89D9A>甇伐<E79487><E4BC90>湔鰵<E6B994>函蔡<E587BD><E894A1>
<EFBFBD>函蔡<EFBFBD>𣂼<EFBFBD><EFBFBD>𠬍<EFBFBD><EFBFBD>湔鰵隞乩<EFBFBD><EFBFBD><EFBFBD>﹝嚗?
### 8.1 <20>湔鰵<E6B994>函蔡餈𥕦漲<F0A595A6><EFBFBD>
蝻𤥁<EFBFBD> `00-<2D>函蔡餈𥕦漲<F0A595A6><EFBFBD>.md`嚗?
```markdown
| **Node.js<6A>𡒊垢** | <20>?撌脣<E6928C><E884A3>?| v1.0 | SAE | 2025-12-24 | ... |
```
### 8.2 霈啣<E99C88><E595A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD>?`00-<2D>函蔡餈𥕦漲<F0A595A6><EFBFBD>.md` 銝剜溶<E5899C>𩤃<EFBFBD>
```markdown
| nodejs-backend-test | <20>?餈鞱<E9A488>銝?| 1<>?GB | 1 | 3001 | http://172.17.173.88:3001 | <20>𩤃<EFBFBD><EFBFBD><E99A9E>蝵𡢅<E89DB5> |
```
---
## <20><20>𡒊賒甇仿炊
Node.js<6A>𡒊垢<F0A1928A>函蔡<E587BD>𣂼<EFBFBD><F0A382BC>𠬍<EFBFBD>
### 1. <20>函蔡<E587BD>滨垢Nginx嚗<78><E59A97><EFBFBD>甇伐<E79487>
<EFBFBD>滨垢Nginx<EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝵奘ode.js<6A>𡒊垢<F0A1928A><E59EA2><EFBFBD>蝵穃𧑐<E7A983><F0A79190>嚗?
```bash
# <20>滨垢Nginx<6E><EFBFBD><E887AC><EFBFBD>
VITE_API_BASE_URL=http://172.17.173.88:3001
```
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>`07-<2D>滨垢Nginx-SAE<41>函蔡<E587BD><EFBFBD><E6BBA2><EFBFBD>.md`
### 2. <20>券曎頝舀<E9A09D>霂?
摰峕㟲<EFBFBD><EFBFBD>窈瘙<EFBFBD>曎頝荔<EFBFBD>
```
<EFBFBD><EFBFBD>瘚讛<EFBFBD><EFBFBD>?
<20>?
<EFBFBD>滨垢Nginx (SAE)
<20>?
Node.js<6A>𡒊垢 (SAE) <20>?http://172.17.173.88:3001
<20>?
<EFBFBD><EFBFBD><EFBFBD>?Python敺格<E695BA><E6A0BC>?(SAE) <20>?http://172.17.173.66:8000
<EFBFBD><EFBFBD><EFBFBD>?RDS PostgreSQL <20>?pgm-2zex1m2y3r23hdn5.pg.rds.aliyuncs.com:5432
<EFBFBD><EFBFBD><EFBFBD>?<3F><EFBFBD>鈭䭲SS <20>?ai-clinical-research.oss-cn-beijing-internal.aliyuncs.com
```
### 3. <20><EFBFBD>隡睃<E99AA1><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD>瘚贝<EFBFBD><EFBFBD><EFBFBD>餈鞱<EFBFBD>蝔喳<EFBFBD><EFBFBD>虾隞亥<EFBFBD><EFBFBD><EFBFBD>嚗?
- **撘寞<E69298>找撓蝻?*嚗𡁻<E59A97>蝵株䌊<E6A0AA><EFBFBD>蝻拙捆閫<E68D86><E996AB>
- **韏<><E99F8F><EFBFBD>㟲**嚗𡁏覔<F0A1818F><EFBFBD><E6A183>扳㺭<E689B3><EFBFBD><E6A0AA>媒PU/<2F><><EFBFBD>
- **<2A><EFBFBD>隡睃<E99AA1>**嚗𡁻<E59A97>蝵格𠯫敹埈<E695B9><E59F88><EFBFBD><EFBFBD><EFBFBD>?
---
## <20>?<3F>函蔡摰峕<E691B0><EFBFBD><E79289><EFBFBD><E4BAA4>?
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝵脣<EFBFBD>嚗諹窈蝖株恕嚗?
- [ ] SAE摨𠉛鍂<F0A0899B><EFBFBD><E59786>蛹"餈鞱<E9A488>銝?
- [ ] <20>亙熒璉<E78692><E79289>交遬蝷?<3F><EFBFBD>"
- [ ] 摰墧𧒄<E5A2A7><EFBFBD><E4BA99>𪊲RROR蝥批<E89DA5><E689B9>躰秤
- [ ] <20>亙熒璉<E78692><E79289>交𦻖<E4BAA4><F0A6BB96><EFBFBD><EFBFBD>?00
- [ ] <20><><EFBFBD><EFBFBD><EFBFBD>撌脰扇敶?
- [ ] <20>函蔡<E587BD><E894A1>﹝撌脫凒<E884AB>?
- [ ] Python敺格<E695BA><E6A0BC>虾隞交迤撣貉<E692A3><E8B289>?
- [ ] <20>唳旿摨栞<E691A8><E6A09E>交迤撣?
- [ ] OSS<53><53>辣銝𠹺<E98A9D>/銝贝蝸甇<E89DB8>
---
## <20><> <20><EFBFBD>銝𤾸葬<F0A4BEB8>?
### 撣貉<E692A3><E8B289><EFBFBD>
1. **Q: 憒<><E68692><EFBFBD>滚鍳摨𠉛鍂嚗?*
- A: SAE摨𠉛鍂霂行<E99C82> <20>?<3F>箸𧋦靽⊥<E99DBD> <20>?<3F>孵稬<E5ADB5><EFBFBD><E99EBE><EFBFBD>?
2. **Q: 憒<><E68692><EFBFBD><EFBFBD>摰峕㟲<E5B395><EFBFBD>嚗?*
- A: SAE摨𠉛鍂霂行<E99C82> <20>?<3F><EFBFBD> <20>?<3F><><EFBFBD><EFBFBD><EFBFBD>𣈲<EFBFBD><F0A388B2>𧒄<EFBFBD><EFBFBD><E6B8B2>湔䰻霂<E99C82>
3. **Q: 憒<><E68692><EFBFBD><EFBFBD><E5A2A7><EFBFBD><E594AC><EFBFBD><E6BBA8><EFBFBD>𧋦嚗?*
- A: SAE摨𠉛鍂霂行<E99C82> <20>?<3F><>𧋦蝞∠<E89D9E> <20>?<3F>㗇𥋘<E39787><F0A58B98><EFBFBD><E89FAE>𧋦 <20>?<3F><EFBFBD>
4. **Q: 憒<><E68692><EFBFBD>拙捆摰硺<E691B0>嚗?*
- A: SAE摨𠉛鍂霂行<E99C82> <20>?<3F>箸𧋦<E7AEB8>滨蔭 <20>?靽格㺿摰硺<E691B0><E7A1BA>?閫<><20>?蝖株恕<E6A0AA>䀹凒
### <20>𠉛頂<F0A0899B><EFBFBD>
- **<2A><><EFBFBD>舀𣈲<E88880>?*嚗𡁜<E59A97><F0A1819C>穃𣪧<E7A983>?
- **<2A><EFBFBD>鈭穃極<E7A983>?*嚗冴ttps://workorder.console.aliyun.com/
---
**<EFBFBD><EFBFBD><EFBFBD>𥕦遣<EFBFBD>園𡢿**嚗?025-12-24
**<EFBFBD><EFBFBD><EFBFBD>擧凒<EFBFBD>?*嚗?025-12-24
**蝏湔擪鈭箏<E988AD>**嚗朞<E59A97>蝏游𣪧<E6B8B8>?
---
<EFBFBD><EFBFBD> **蟡嗪<E89FA1>蝵脤◇<E884A4><EFBFBD><EFBFBD><E68692><EFBFBD><EFBFBD>嚗諹窈<E8ABB9><E7AA88><EFBFBD><EFBFBD><EFBFBD><EFBFBD>𨀣<EFBFBD><F0A880A3><EFBFBD><E4BAA6><EFBFBD><EFBFBD><EFBFBD>𠉛頂<F0A0899B><E9A082><EFBFBD>舀𣈲<E88880><F0A388B2><EFBFBD>?*