基于 Serverless 的实时点餐系统.
.
├── README.md 说明文件
├── package.json npm 配置文件
├── postgresql postgresql 数据库组件配置
├── scripts 项目脚本文件
├── server 后端服务
├── vpc vpc 组件配置
├── website 前端页面
└── websocket websocket 服务
项目使用到的云端资源:
VPC - 私有网络
PostgreSQL - Serverless PostgreSQL 数据库
COS - 对象存储
SCF - 云函数
API GW - API 网关
克隆项目:
$ sls init order-system部署需要先配置腾讯云鉴权信息,复制 .env.example 为 .env,然后配置正确的腾讯云密钥的 TENCENT_SECRET_ID 和 TENCENT_SECRET_KEY。
项目下的子项目之间存在依赖关系:
vpc <- postgresql <- websocket <- server <- website
因此你会发现在 package.json 中存在各个子项目部署的命令,比如:
$ npm run deploy:website当然你可以不用考虑这些,也可以直接一键部署所有,只需要执行:
$ npm run depoy第一次部署完成后,如果想要本地开发,可以将 website 目录中的 /env.example.js 复制为 env.js,然后将部署成功地 server 的 url 配置为 apiUrl,然后将 websocket 的 url 配置为 wsUrl。如下:
window.env = {};
window.env.wsUrl = 'wss://service-xxxx-xxx.bj.apigw.tencentcs.com';
window.env.apiUrl = 'https://service-xxx-xxx.bj.apigw.tencentcs.com/release/';然后启动前端页面:
$ npm run dev在浏览器中访问 http://127.0.0.1:8080 如下:
前端静态托管的配置 website/serverless.yml 中,配置了 hosts 为 CDN 加速域名相关配置,如果不需要 CDN 可以直接将其中的 hosts 配置删除。
MIT License
Copyright (c) 2020 Yuga Sun
