有奖征文:轻量对象存储LighthouseCOS用户实践> HOT

环境准备

在开始部署云函数前,您需要完成以下操作:
2. 广州地域下,新建并购买一个数据库。
新购买的数据库默认在 VPC 网络中(即只有内网地址),本文使用外网地址。如下图所示:


如果您未创建数据库实例,建议购买“按量计费”的最小实例,用于所有终端广播消息时使用,存储 Websocket 的连接 ID 及相关信息。
如果您已购买创建数据库实例,可以直接新建数据库或表,供云函数使用。
说明
如果您担心数据库的安全问题,需要在 VPC 内网中操作数据库。您可以在部署云函数时,修改函数的配置,将云函数部署在 VPC 网络环境中,详情请参见 函数部署到 VPC 网络

创建云函数

1. 登录 Serverless 控制台,进入函数服务页面。
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 为例。
实例:选择共享型
备注:此处以 websocket 为例。
4. 单击下一步,填写如下参数信息。如下图所示:

主要参数信息说明如下:
前端类型:选择HTTP。
访问方式:选择公网。
5. 单击提交完成创建。
6. 单击已创建的服务 ID,进入服务详情页。选择管理API > 新建。如下图所示:


7. 在“前端配置”页面填写以下参数信息,其余设置保持默认,填写完成后单击下一步,按照提示完成相应配置,如下图所示:

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

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


返回类型:选择HTML
其余保持默认设置。
10. 单击完成即可创建 API 网关。

发布服务

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



获取 Websocket 反向推送地址

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


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

获取 Websocket 连接地址

选择发布管理页签,查看 API 服务地址。如下图所示:


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

修改函数初始化信息

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



修改注册函数

2. 进入 WebsocketRegisterDemo-xxx函数代码页签,按照以下提示修改信息,并单击保存。如下图所示:


sendbackHost:API 网关反向推送链接,请参见步骤 获取 Websocket 反向推送地址
Host:数据库外网地址。
User:数据库账号。
Password:数据库账号密码。
Port:数据库外网端口。
DB 及 Table:保持默认。

修改传输函数

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

修改清理函数

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