项目文件夹

文件

1.8 KiB

WeHub 全资源 Demo

覆盖 WeHub Deploy Protocol 当前支持的全部 5 种资源的最小可运行标准项目。

CTyun E2E run IDctyun-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