最佳实践

系统部署

最近更新时间:2021-02-20 16:21:43

环境准备

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

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

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

创建云函数

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

创建注册函数

  1. 单击【新建】,进入新建函数页面。
  2. 设置以下参数信息,如下图所示:
    • 创建方式:选择【模板创建】。
    • 模糊搜索:输入 “Websocket注册函数”,并进行搜索,本文以运行环境 Python 2.7 为例。
      单击模板中的【查看详情】,即可在弹出的“模板详情”窗口中查看相关信息,支持下载操作。
  3. 单击【下一步】并保持默认配置,单击【完成】即可创建注册函数。

创建传输函数

  1. 单击【新建】,进入新建函数页面。
  2. 设置以下参数信息,如下图所示:
    • 创建方式:选择【模板创建】。
    • 模糊搜索:输入 “Websocket传输函数”,并进行搜索,本文以运行环境 Python 2.7 为例。
      单击模板中的【查看详情】,即可在弹出的“模板详情”窗口中查看相关信息,支持下载操作。
  3. 单击【下一步】并保持默认配置,单击【完成】即可创建传输函数。

创建清理函数

  1. 单击【新建】,进入新建函数页面。
  2. 设置以下参数信息,如下图所示:
    • 创建方式:选择【模板创建】。
    • 模糊搜索:输入 “Websocket清理函数”,并进行搜索,本文以运行环境 Python 2.7 为例。
      单击模板中的【查看详情】,即可在弹出的“模板详情”窗口中查看相关信息,支持下载操作。
  3. 单击【下一步】并保持默认配置,单击【完成】即可创建清理函数。

配置 API 网关

创建 API

  1. 登录 API 网关控制台,单击左侧导航栏【服务】。
  2. 在服务页面,选择页面上方的广州地域,并单击【新建】。
  3. 在弹出的“新建服务页面”填写如下参数信息,单击【提交】完成创建,按照提示完成相应配置,如下图所示:

    主要参数信息说明如下:
    • 服务名:最长50个字符,支持 a - z,A - Z,0 - 9,_,此处以 Websocket 为例。
    • 前端类型:选择【HTTP】。
    • 访问方式:选择【公网】。
    • 备注:此处以 websocket 为例。
  4. 单击已创建的服务 ID 后,选择【管理API】>【新建】。如下图所示:
  5. 在“前端配置”页面填写以下参数信息,其余设置保持默认,填写完成后单击【下一步】,按照提示完成相应配置,如下图所示:

    主要参数信息说明如下:
    • API名称:命名为 “websocket”。
    • 前端类型:选择【WS】。
    • 路径:填写 /websocket
    • 鉴权类型:选择【免鉴权】。
  6. 在“后端配置”页面填写以下参数信息,单击【下一步】,按照提示完成相应配置,如下图所示:

    主要参数信息说明如下:
    • 后端类型:选择【云函数SCF】。
    • 传输函数:选择新创建的传输函数,即 WebsocketTransmissionDemo-xxx
    • 注册函数:勾选,并选择新创建的注册函数,即 WebsocketRegisterDemo-xxx
    • 清理函数:勾选,并选择新创建的清理函数,即 WebsocketDeleteDemo-xxx
    • 后端超时:设置为600秒。Client 端在建立 Websocket 连接后,如果一直没有消息发送,将会在超时时间到达后,由 API 网关断开连接。
  7. 在“响应结果”页面填写以下参数信息,如下图所示:
    • 返回类型:选择【HTML】。
    • 其余保持默认设置。
  8. 单击【完成】即可创建 API 网关。

发布服务

在弹窗中单击【发布服务】即可将服务发布到正式环境中。

获取 Websocket 反向推送地址

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

注意:

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

获取 Websocket 连接地址

选择【API文档/SDK】页签,查看 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. 进入 WebsocketRegisterDemo-xxx 的【函数代码】页签,按照以下提示修改信息,并单击【保存】。如下图所示:
    • sendbackHost:API 网关反向推送链接,请参见步骤 获取 Websocket 反向推送地址
    • Host:数据库外网地址。
    • User:数据库帐号。
    • Password:数据库帐号密码。
    • Port:数据库外网端口。
    • DB 及 Table:保持默认。

修改传输函数

请参见 修改注册函数,修改传输函数。

修改清理函数

请参见 修改注册函数,修改清理函数。

目录