系统部署

最近更新时间:2019-01-29 17:26:54

环境准备

在开始部署云函数前,您需要完成以下操作:

  1. 登录 关系型数据库控制台

  2. 广州地域下,新建并购买一个数据库。

    • 新购买的数据库默认在 VPC 网络中(即只有内网地址),为了演示方便,建议开启外网地址。如下图所示:
    • 如果您没有数据库实例,建议购买 “按量计费” 的最小实例。用于所有终端广播消息时使用,存储 Websocket 的连接 ID 及相关信息。
    • 如果您已有自己的数据库实例,可以直接新建数据库或表,供云函数使用。

    说明:

    如果您担心数据库的安全问题,需要在 VPC 内网中操作数据库,您可以在部署云函数时,修改函数的配置,将云函数部署在 VPC 网络环境中。操作详情可参考【网络配置】

创建云函数

  1. 登录 无服务器云函数控制台,进入【函数服务】页面。
  2. 选择广州地域。

创建注册函数

  1. 单击【新建】,进入新建函数页面。
  2. 填写以下参数信息,单击【下一步】。如下图所示:
    • 创建方式:选择 “模板函数”。
    • 函数名称:命名为 “ws_register”。
    • 模板搜索:选择 “语言” 为 “Python2.7” 的 “Websocket注册函数” 模板。
  3. 保持默认配置,单击【完成】,完成函数的创建。

创建传输函数

  1. 单击【新建】,进入新建函数页面。
  2. 填写以下参数信息,单击【下一步】。如下图所示:
    • 创建方式:选择 “模板函数”。
    • 函数名称:命名为 “ws_transmission”。
    • 模板搜索:选择 “语言” 为 “Python2.7” 的 “Websocket传输函数” 模板。
  3. 保持默认配置,单击【完成】,完成函数的创建。

创建清理函数

  1. 单击【新建】,进入新建函数页面。
  2. 填写以下参数信息,单击【下一步】。如下图所示:
    • 创建方式:选择 “模板函数”。
    • 函数名称:命名为 “ws_delete”。
    • 模板搜索:选择 “语言” 为 “Python2.7” 的 “Websocket清理函数” 模板。
  3. 保持默认配置,单击【完成】,完成函数的创建。

配置 API 网关

创建 API

  1. 切换至 API 网关控制台
  2. 广州地域下,单击【新建】,创建一个 API 服务,可命名为 “Websocket”。
  3. 在新创建的 API 服务的【API管理】页签中,单击【新建】,进入 “前端配置” 页面。如下图所示:

    主要参数信息如下:
    • API名称:命名为 “websocket”。
    • 前端类型:选择 “WEBSOCKET”。
    • 路径:填写 “/websocket”。
    • 鉴权类型:选择 “免鉴权”。
  4. 单击【下一步】。
  5. 在 “后端配置” 页面,填写以下参数信息,单击【下一步】。如下图所示:
    • 后端类型:选择 “cloud function”。
    • 传输函数:选择新创建的传输函数,即 “ws_transmission”。
    • 注册函数:选择新创建的注册函数,即 “ws_register”。
    • 清理函数:选择新创建的清理函数,即 “ws_delete”。
    • 后端超时:设置为600秒。Client 端在建立 Websocket 连接后,如果一直没有消息发送,将会在超时时间到达后,由 API 网关断开连接。
    • 是否启用响应集成:不勾选。当您勾选响应集成后,云函数的返回值将按照约定的 JSON 数据结构返回。
  6. 单击【完成】。

发布服务

  1. 前往【服务信息】,单击右上方的【发布】。如下图所示:
  2. 在弹出的 “发布服务” 窗口中,选择【发布】,单击【提交】,将服务发布到正式环境中。

获取 Websocket 反向推送地址

选择【API管理】页签,单击 API 的 ID/名称,查看 Websocket 的反向推送地址,及其它配置信息。如下图所示:

注意:

Websocket 的反向推送地址会在云函数主动向 Client 端发送消息、或者主动断开与 Client 端的连接时使用。

获取 Websocket 连接地址

选择【环境管理】页签,查看 API 服务地址。如下图所示:

根据服务地址,可知 Websocket 的 API 地址为:"ws://service-lmsb7nhm-1256608914.ap-guangzhou.apigateway.myqcloud.com/release/websocket"

注意:

Websocket 的 API 地址需要带上 API 的路径 “/websocket”。

修改函数初始化信息

  1. 打开数据管理,确认已在数据库实例中创建数据库。如下图所示:

    如若未创建数据库,可参考 数据库操作文档,创建以下数据库、数据表和列:
    • 数据库:命名为 “SCF_Demo”。
    • 数据表:命名为 “ConnectionID_List”。
    • 列:命名为 “ConnectionID、Date”。

修改注册函数

  1. 切换至 无服务器云函数控制台
  2. 进入 “ws_register” 的【函数代码】页签,修改如下信息。
  3. 单击【保存】。

修改传输函数

参照 修改注册函数,修改传输函数。

修改清理函数

参照 修改注册函数,修改清理函数。