项目文件夹

文件

38 行
1.8 KiB
Markdown

此文件含有模棱两可的 Unicode 字符
此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。
# WeHub 全资源 Demo
覆盖 WeHub Deploy Protocol 当前支持的全部 5 种资源的最小可运行标准项目。
CTyun E2E run ID`ctyun-e2e-20260730T101505Z`
## 资源
| kind | name | 说明 |
|---|---|---|
| `static_site` | `web` | `frontend/dist/index.html`,调 `/api/cloud/health` 展示绑定状态 |
| `function` | `api` | `functions/api/index.js` 导出 `handler`,路由 `/api/cloud/*`,runtime `nodejs20` |
| `postgres_database` | `app_db` | `app.demo_events` 表读写 |
| `object_storage` | `uploads` | presigned PUT/GET + 运行时凭证刷新 |
| `model_router` | `models` | 经 OpenAI 兼容 endpoint 单轮问答 |
## 路由
- `GET /api/cloud/health` —— 报告 DB/存储/模型绑定是否配置。
- `GET /api/cloud/db` —— 建表 + 写一条 `app.demo_events` 记录。
- `POST /api/cloud/presigned-upload` —— 签发 presigned PUT/GET URL。
- `POST /api/cloud/chat` —— 经 `model_router` 单轮问答。
## 资源引用
`wehub.manifest.json` 中函数 env 用 `ref:<resource>.<field>` 引用逻辑资源输出:
- `DATABASE_URL`: `ref:app_db.connection_url`
- `OBJECT_BUCKET` / `OBJECT_PREFIX` / `OBJECT_ENDPOINT` / `OBJECT_REGION`: `ref:uploads.*`
- `OBJECT_CREDENTIALS` / `OBJECT_CREDENTIALS_URL` / `OBJECT_CREDENTIALS_TOKEN` / `NANOHUB_RUNTIME_TOKEN`: `ref:uploads.*`
- `OPENAI_BASE_URL` / `OPENAI_API_KEY` / `OPENAI_MODEL`: `ref:models.*`
函数把 `OBJECT_ENDPOINT` 直接作为 S3 endpoint,`OBJECT_BUCKET` 交给 AWS SDK 生成 bucket Host;运行时凭证经 `OBJECT_CREDENTIALS_URL` + token 刷新,camelCase/snake_case 归一化。
## 本地检查
仓库不需要预生成 `deploy.zip`。部署打包产物由 `wehub-runner` 在构建阶段生成。前端为预构建静态 HTML(无 `package.json`),runner 跳过前端构建;函数 `package.json` 存在时 runner 执行 `npm ci --omit=dev`