API 網關結合云函式 SCF 的使用場景非常豐富,本文將介紹如何基于 API 網關+云函式 SCF 快速部署 Serverless 的外賣訂單系統,
訊息推送使用的典型場景

外賣訂單系統架構圖

Demo 實戰
1. 安裝Serverless Framework
npm install -g serverless
2. 初始化專案模板
sls init -t websocket-order
3. 查看專案目錄
下載到本地后,查看專案目錄結構如下:

包含 DB、網關、函式等多個子模塊,
-
db 目錄用于創建 PG Serverless 資料庫實體
-
apigateway 用于創建對應的 API :
- /bill 下單 API,HTTP 型別
- /get_shop_info,獲取店鋪選單 API
- /pgws,用于做訊息推送的 websocket API
-
函式串列如下:
- 訊息推送相關函式:
- 注冊函式 ws_register.py, 配置 DB 的環境變數
- 傳輸函式 ws_trans.py ,配置 DB 的環境變數以及 apiid= 訊息推送API
- 注銷函式 ws_unregister.py ,配置 DB 的環境變數以及 apiid= 訊息推送API
- 下單函式 bill.py , 配置 DB 的環境變數以及 apiid= 訊息推送API
- 拉取店鋪資訊函式 get_shop_info.py,配置 DB 的環境變數
- 初始化 DB 函式 init_db.py ,配置 DB 的環境變數
- 訊息推送相關函式:
4. 修改配置資訊,將 .env.example 檔案為 .env 檔案,在 API 密鑰管理 中獲取 SecretId 和 SecretKey,
# secret for credential
TENCENT_SECRET_ID=xxxxxx
TENCENT_SECRET_KEY=xxxxxx
# global config
REGION=ap-shanghai
- 專案部署
sls deploy --all
6. 更新配置及部署
- 執行 init_db-dev 函式,進行資料庫初始化,在控制臺或者 vscode 插件中,點擊測驗 init_db-dev 函式,對資料庫進行初始化的建表等操作
- 更新 apiid 配置,再次部署

查看輸出資訊,在 function_bill 目錄和 function_ws_trans 目錄的 serverless.yml 中,分別配置 websocket API 的 apiid ,并重新部署兩個函式,重繪環境變數配置,

sls deploy --target=./function_ws_trans
sls deploy --target=./function_bill
7. 更改客戶端與廚房訂單系統的地址
App點單系統.html 更改 29 行 以及 88 行中 xxxx 為:生成的 API 網關服務域名
店家廚房系統.html 更改 17 行 xxxx 為 API 網關服務域名
效果演示:

One More Thing
3 秒你能做什么?喝一口水,看一封郵件,還是 —— 部署一個完整的 Serverless 應用?
復制鏈接至 PC 瀏覽器訪問:https://serverless.cloud.tencent.com/deploy/express
3 秒極速部署,立即體驗史上最快的 Serverless HTTP 實戰開發!
傳送門:
- GitHub: github.com/serverless
- 官網:serverless.com
歡迎訪問:Serverless 中文網,您可以在 最佳實踐 里體驗更多關于 Serverless 應用的開發!
推薦閱讀:《Serverless 架構:從原理、設計到專案實戰》
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/79642.html
標籤:其他
