前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于 API 网关 + 云函数 SCF 部署 Serverless 外卖订单系统

基于 API 网关 + 云函数 SCF 部署 Serverless 外卖订单系统

作者头像
腾讯云serverless团队
发布2020-07-07 16:41:09
1.5K0
发布2020-07-07 16:41:09
举报

API 网关结合云函数 SCF 的使用场景非常丰富,本文将介绍如何基于 API 网关+云函数 SCF 快速部署 Serverless 的外卖订单系统。

消息推送使用的典型场景

外卖订单系统架构图

Demo 实战

  1. 安装Serverless Framework
代码语言:javascript
复制
npm install -g serverless
  1. 初始化项目模板
代码语言:javascript
复制
sls init -t websocket-order
  1. 查看项目目录

下载到本地后,查看项目目录结构如下:

包含 DB、网关、函数等多个子模块。

  • db 目录用于创建 PG Serverless 数据库实例
  • apigateway 用于创建对应的 API :
    • /bill  下单 API,HTTP 类型
    • /get_shop_info,获取店铺菜单 API
    • /pgws,用于做消息推送的 websocket API
  • 函数列表如下:

    a.   消息推送相关函数:

  • 注册函数  ws_register.py, 配置 DB 的环境变量;
  • 传输函数  ws_trans.py ,配置 DB 的环境变量以及 apiid= 消息推送API;
  • 注销函数  ws_unregister.py ,配置 DB 的环境变量以及 apiid= 消息推送API;

    b. 下单函数  bill.py,配置 DB 的环境变量以及 apiid= 消息推送API

    c. 拉取店铺信息函数  get_shop_info.py,配置 DB 的环境变量

    d. 初始化 DB 函数 init_db.py ,配置 DB 的环境变量

  1. 修改配置信息。将 .env.example 文件为 .env 文件,在 API 密钥管理 中获取 SecretId 和 SecretKey。
代码语言:javascript
复制
# secret for credential
TENCENT_SECRET_ID=xxxxxx
TENCENT_SECRET_KEY=xxxxxx

# global config
REGION=ap-shanghai
  1. 项目部署
代码语言:javascript
复制
sls deploy --all
  1. 更新配置及部署
  • 执行 init_db-dev 函数,进行数据库初始化。在控制台或者 vscode 插件中,点击测试 init_db-dev 函数,对数据库进行初始化的建表等操作
  • 更新 apiid 配置,再次部署

查看输出信息,在 function_bill 目录和 function_ws_trans 目录的 serverless.yml 中,分别配置 websocket API 的 apiid ,并重新部署两个函数,刷新环境变量配置。

代码语言:javascript
复制
sls deploy --target=./function_ws_trans
sls deploy --target=./function_bill
  1. 更改客户端与厨房订单系统的地址

App 点单系统.html 更改 29 行 以及 88 行中 xxxx 为 生成的API网关服务域名

店家厨房系统.html  更改 17 行 xxxx 为 API 网关服务域名

效果演示

附录:参考文档和配置

  1. 安装 Serverless Framework https://cloud.tencent.com/document/product/583/44753
  2. 安装 Serverless DB https://cloud.tencent.com/document/product/1154/45447
  3. API 网关的 yaml 完整配置 https://github.com/serverless-components/tencent-apigateway/blob/master/docs/configure.md
  4. SCF 的 yaml 完整配置 https://github.com/serverless-components/tencent-scf/blob/master/docs/configure.md

有奖实战部署

1. 部署 Case

基于 API 网关+云函数 SCF 部署 Serverless 外卖订单系统,源码教程:https://github.com/leonardjin/apigateway/tree/master/apigw-scf-order-system

2. 部署福利

a. 前 30 名部署成功者可领取腾讯云计算器笔记本一个,30~100 名部署成功者可领取50元腾讯云云函数无门槛代金券一张。

b. 成功提交一个有效 issue,可领取云函数30元无门槛代金券一张。issue 提交地址:https://github.com/serverless/serverless/issues

3. 福利领取方式

成功部署后,点击链接:http://u6uvxlniyxhd4qgj.mikecrm.com/fMWq2Um,进入礼品领取信息收集表,填写提交相关信息,Serverless小助手(微信号:serverless_helper)会统一审核并安排礼品发送。

4. 活动截止时间

7 月 8 日 24:00 之前。如果有任何疑问或者建议,您可以联系 Serverless 小助手(微信号:serverless_helper)进群,我们会在交流群及时交流、回复。

四、往期回顾

  • Tencent Serverless Hours 第一期线上分享会回放地址:https://cloud.tencent.com/edu/learning/live-2437
  • Tencent Serverless Hours 第二期线上分享会回放地址:https://cloud.tencent.com/edu/learning/live-2480
  • Tencent Serverless Hours 第三期线上分享会回放地址:https://cloud.tencent.com/edu/learning/live-2564

One More Thing

3 秒你能做什么?喝一口水,看一封邮件,还是 —— 部署一个完整的 Serverless 应用?复制以下链接至 PC 浏览器访问:

china.serverless.com/express

3 秒极速部署,立即体验史上最快的 Serverless  HTTP 实战开发!

传送门:

  • GitHub: github.com/serverless
  • 官网:serverless.com

点击阅读原文,访问:Serverless 中文网,您可以在「最佳实践」里体验更多关于 Serverless 应用的开发!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-07-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 ServerlessCloudNative 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 消息推送使用的典型场景
  • 外卖订单系统架构图
  • Demo 实战
  • 有奖实战部署
  • 四、往期回顾
  • One More Thing
相关产品与服务
API 网关
腾讯云 API 网关(API Gateway)是腾讯云推出的一种 API 托管服务,能提供 API 的完整生命周期管理,包括创建、维护、发布、运行、下线等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档