最佳实践

系统部署

最近更新时间:2020-07-07 16:58:29

环境准备

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

  1. 登录 云数据库 TencentDB 控制台
  2. 广州地域下,新建并购买一个数据库。
    • 新购买的数据库默认在 VPC 网络中(即只有内网地址),本文使用外网地址。如下图所示:
    • 如果您没有数据库实例,建议购买 “按量计费” 的最小实例。用于所有终端广播消息时使用,存储 Websocket 的连接 ID 及相关信息。
    • 如果您已有自己的数据库实例,可以直接新建数据库或表,供云函数使用。
      说明:

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

创建云函数

  1. 登录 云函数控制台,进入【函数服务】页面。
  2. 选择广州地域,default 命名空间。

创建注册函数

  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. 在服务页面,选择页面上方的广州地域,并单击【新建】。
  3. 在弹出的“新建服务页面”填写如下参数信息,单击【提交】完成创建。如下图所示:
    • 服务名:最长50个字符,支持 a - z,A - Z,0 - 9,_,此处以 Websocket 为例。
    • 前端类型:选择 http。
    • 备注:此处以 websocket 为例。
  4. 单击已创建的服务 ID 后,选择【API管理】>【新建】。如下图所示:
  5. 在“前端配置” 页面填写以下参数信息,其余设置保持默认,填写完成后单击【下一步】。如下图所示:
    • API名称:命名为 “websocket”。
    • 前端类型:选择【WEBSOCKET】。
    • 路径:填写 “/websocket”。
    • 鉴权类型:选择 “免鉴权”。
  6. 在 “后端配置” 页面填写以下参数信息,单击【下一步】。如下图所示:
    • 后端类型:选择 “cloud function”。
    • 传输函数:选择新创建的传输函数,即 “ws_transmission”。
    • 注册函数:勾选,并选择新创建的注册函数,即 “ws_register”。
    • 清理函数:勾选,并选择新创建的清理函数,即 “ws_delete”。
    • 后端超时:设置为600秒。Client 端在建立 Websocket 连接后,如果一直没有消息发送,将会在超时时间到达后,由 API 网关断开连接。
    • 是否启用响应集成:不勾选。当您勾选响应集成后,云函数的返回值将按照约定的 JSON 数据结构返回。
  7. 在 “响应结果”页面填写以下参数信息,并单击【完成】。如下图所示:
    • 返回类型:选择 “HTML”。
    • 其余保持默认设置。

发布服务

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

获取 Websocket 反向推送地址

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

注意:

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

获取 Websocket 连接地址

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

注意:

  • Websocket 的 API 地址需要带上 API 的路径 “/websocket”。
  • 根据服务地址,可知 Websocket 连接地址为:ws://service-phe5h6qu-xxxxxxxxx.gz.apigw.tencentcs.com/releasee/websocket。

修改函数初始化信息

  1. 如若未创建数据库,可参考 建立数据库和表,创建以下数据库、数据表和列:
    • 数据库:命名为 “SCF_Demo”。
    • 数据表:命名为 “ConnectionID_List”。
    • 列:命名为 “ConnectionID、Date”。
  2. 打开数据管理,确认已在数据库实例中创建数据库。如下图所示:

修改注册函数

  1. 登录 云函数控制台
  2. 进入 “ws_register” 的【函数代码】页签,按照以下提示修改信息,并单击【保存】。如下图所示:
    • sendbackHost:API 网关反向推送链接,请参见步骤 获取 Websocket 反向推送地址
    • Host:数据库外网地址。
    • User:数据库帐号。
    • Password:数据库帐号密码。
    • Port:数据库外网端口。
    • DB 及 Table:保持默认。

修改传输函数

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

修改清理函数

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

目录