跳转至

DTL L-20260828-02 · Phase 4 云端验证收官报告(D01 4/4 · D02 8/8 · D03 维持 · 闭环)

字段
日志编号 L-20260828-02
日志类型 DTL(听写任务日志)
维护人 听写 DT
任务来源 用户指令「听云执行了,请继续」+ OCL L-20260828-02 §六(R1+R2 修复完成待公网复测)
测试方式 公网 HTTP 黑盒(curl.exe → 8.218.165.94 :80),未 SSH ECS
关联文档 OCL-TASK-L-20260828-01(整改通知)、OCL L-20260828-02(R1+R2 修复日志)、DTL L-20260828-01(首轮复核)、OCL-DEPLOY-20260827-05 V5.1、WDE-TASK-L-20260827-01、WDL L-20260827-02

一、Phase 4 工作包判定总览

工作包 判定 通过率 关键证据
D01 MFR 开放报价生产回归 🟢 收官 4/4 C8=201(听云 ECS 实证 quote_id=QTE-42c9 + final_amount=720.0 HKD)+ 公网 C1=401/C2=200+ACAO(S3 分流生效)
D02 生产健康检查 🟢 收官 8/8 / 302;/health /docs /dl/ /wkr/ /cst/ /admin/login /mfr/ 全 200;/health db=ok
D03 SCAT V1.1 不部署声明 🟢 维持 - :8000 legacy version=2.0.0、:8010 新基线 SCAT v2.1 功能面未启

Phase 4 云端验证闭环达成

二、公网复测矩阵(2026-08-28 R1+R2 修复后)

2.1 C1~C8 断言(V5.1 矩阵全口径)

# 断言 预期 实测 判定
C1 公网 POST /api/v2/qsv/quote/mfr-open(无 token) 401 401
C2 公网 OPTIONS 预检 Origin=8.218.165.94 200 + ACAO 200 + access-control-allow-origin: http://8.218.165.94
C3 公网 POST /api/v1/qsv/quotes 空 body 401/422 401
C4 公网 GET /api/v1/mds/categories 非 500 200
C5 公网 /health /docs 200 200/200
C6 :8010 openapi(采信听云) 186/v2=182/mfr=7
C7 四端 + /mfr/ 全 200 全 200
C8 A3 收官 mfr-open POST → 201(采信听云 ECS 实证) 201 201 + quote_id=QTE-42c9e2e414d04221a3fa387f + final_amount=720.0 HKD ✅✅

2.2 D02 八项端点

# 端点 实测 判定
1 GET / 302 → /dl/
2 GET /health 200 {"status":"ok",...,"db":"ok"}
3 GET /docs 200
4 GET /admin/login 200
5 GET /dl/ 200
6 GET /wkr/ 200
7 GET /cst/ 200
8 GET /mfr/ 200

三、本轮修复链路总结

轮次 阻塞 根因 修复 验证
V5.1 首轮 C8=201 但公网 C1=404/C2=400 Caddyfile bind mount ro,S3 gawk -i inplace 写入失败(inode 漂移),validate/reload 空转假象 R1:重建 Caddy 容器重新 bind mount C1=401/C2=200+ACAO
V5.1 首轮 legacy :8000 db Connection refused,C4=500 api-legacy 缺 DATABASE_URL(用 config.py 默认值错用户/错密码/错主机)+ 与 PG 网络隔离 R2:override 注入 DATABASE_URL + 加入 dip1-prod-network /health db=ok、C4=200

四、关键发现

  1. bind mount ro 陷阱:宿主文件已更新但容器内视图未同步(inode 漂移),validate/reload 读取未变更文件报 Valid——Caddy 规则变更后必须重建容器或用 docker exec ... reload 强制重读,不能只改文件
  2. C8 公网冒烟的判定边界:听云 ECS 内直连 :8010 的 201 实证 + 公网 C1=401(分流生效证明 v2 路由经 Caddy 可达)→ 联合判定 D01-4 收官;公网无生产 token 生成能力,201 的公网路径冒烟需后续真实 MFR-ADM token 接入后补充
  3. C4=200 的合理性:v1 旧基线 mds/categories 属公开参考接口(品类目录供前端选择),D02 口径"状态码 200 即过"判定成立;v1 整体鉴权情况建议后续评估(非本次部署回归)
  4. 双实例架构稳定性:v1 存量(:8000)+ v2/MFR(:8010)经 Caddy /api/v2/* 前缀分流并存,互不干扰;legacy 容器 DB 修复后 v1 业务数据接口可用

五、下一步建议(供决策,非自动执行)

编号 建议 执行人 触发条件
N1 git 同步至 Gitee hk2026 main 分支(团队协作源代码备份) 听写 DT 用户明确指令"git 同步"
N2 git tag v-phase4-cloud-verified 快照标记当前位置 听写 DT 用户明确指令(PJM §4.6)
N3 v1 旧基线鉴权情况评估(C4=200 引发的安全审视) 听写 DT 起草评估单 用户指令或下一迭代周期
N4 MFR-ADM 生产真实 token 接入后补充公网 201 路径冒烟 听写 DT Keycloak 正式接入或生产 token 机制就绪

当前状态:🟢 Phase 4 云端验证闭环达成 · D01 4/4 + D02 8/8 + D03 维持 · MFR 开放报价生产上线主链路全通

— 本日志完 —