文档章节

5分钟Serverless实践 | 构建无服务器的敏感词过滤后端系统

中间件小哥
 中间件小哥
发布于 2018/08/22 09:49
字数 1305
阅读 94
收藏 0

前言

在上一篇“5分钟Serverless实践”系列文章中,我们介绍了什么是Serverless,以及如何构建一个无服务器的图片鉴黄Web应用,本文将延续这个话题,以敏感词过滤为例,介绍如何构建一个无服务器API,即无服务器的后端系统。

 

函数工作流

函数工作流(FunctionGraph,FGS)是一项基于事件驱动的函数托管计算服务,托管函数具备以毫秒级弹性伸缩、免运维、高可靠的方式运行。通过函数工作流,开发者无需配置和管理服务器,只需关注业务逻辑,编写函数代码,以无服务器的方式构建应用,便能开发出一个弹性高可用的后端系统,并按实际运行消耗的资源计费。极大地提高了开发和运维效率,减小了运作成本。

 

相比于传统的架构,函数工作流构建的无服务器架构具有如下优点:

1.无需关注任何服务器,只需关注核心业务逻辑,提高开发和运维效率

2.函数运行随业务量弹性伸缩,按需付费,执行才计费,对于负载波峰波谷非常明显的场景可以减少大量成本

3.通过简单的配置即可连通函数工作流和其它各云服务,甚至云服务和云服务

 

构建无服务器的敏感词过滤后端系统

为了进一步让大家感受函数工作流的优势,我们将介绍如何通过函数工作流快速构建一个无服务器的敏感词过滤系统,本文我们主要关注后端系统,前端的表现形式很多,大家可以自行构建。如下图,该系统会识别用户上传的文本内容是否包含敏感信息(如色情、政治等),并对这些词语进行过滤。

●试想,如果我们通过传统的模式开发此应用,需要如何开发?即使是基于现在的云平台,我们也仍需要购买云服务器,关注其规格、镜像、网络等各指标的选型和运维,然后在开发过程中可能还需要考虑与其他云服务的集成使用问题,使代码中耦合大量非业务代码,并且服务器等资源也并非是按需的,特别是对于访问量波峰波谷非常明显的场景,会造成大量多余的费用。

 

现在我们可以通过函数工作流服务来快速构建这个系统,并且完全无需关注服务器,且弹性伸缩运行、按需计费,如图:

 

创建函数,在函数中调用华为云内容检测服务提供的文本检测接口,实现文本的敏感词检测,并为该函数配置一个APIG触发器,这样便可以对外提供一个敏感词过滤的API,从而构建出一个完整的敏感词过滤的无服务器后端系统。客户端调用API,他会自动触发函数执行,而开发者编写的函数只需实现接收到文本之后如何处理文本的逻辑即可,最后将结果返回给客户端。至此,我们就构建了一个完整的无服务器敏感词过滤后端系统。

 

接下来,我们将介绍如何完整地将此无服务器后端系统构建出来。

1.准备工作

进入华为云内容检测服务,申请开通文本内容检测,成功申请后便可以调用内容检测服务提供的文本检测接口了。

 

2.创建函数

进入函数工作流服务页面,创建函数,实现文本检测的接口调用和敏感词过滤,代码如下:

函数创建完成之后,为其配置具有IAM访问权限的委托,因为本函数代码中获取用户的ak、sk需要拥有访问IAM的权限。

 

3.创建APIG触发器

为函数配置一个APIG触发器,这样便得到一个调用该函数的HTTP(S) API,供外部调用。

创建成功后,API的URL可以在函数详情页面的“触发器”栏看到:

 

4.测试

使用postman等工具向上一步中创建的APIG触发器的接口发送post请求,body体为:{“msg”: “过滤检测的文本”},查看返回信息。

比如发送 {"msg": "just fuck ..."}, 返回体为 {"result": "just  ..."}

至此,我们就完整地构建了一个无服务器的敏感词过滤后端系统。

© 著作权归作者所有

中间件小哥
粉丝 9
博文 53
码字总数 74634
作品 0
深圳
私信 提问
5分钟构建无服务器敏感词过滤后端系统(基于FunctionGraph)

摘要:开发者通过函数工作流,无需配置和管理服务器,以无服务器的方式构建应用,便能开发出一个弹性高可用的后端系统。托管函数具备以毫秒级弹性伸缩、免运维、高可靠的方式运行,极大地提高...

程序猿da哥
2018/08/01
0
0
java+html实现弹幕功能并集成敏感词过滤功能,实现思路

即时评论和即时弹幕功能架构设计: 后端数据存储 前端弹幕展示方式 前后台即时通讯方式 敏感词过滤系统 数据存储 弹幕数据庞大,一般是无用数据,存储的话纯文本就行,结构化要求不强,数据不...

两毛五哥哥
2017/11/16
0
0
5分钟Serverless实践 | 构建无服务器图片鉴黄Web应用

Serverless是什么 Serverless中文译为“无服务器”,最早可以追溯到2012年Ken Fromm发表的《Why The Future Of Software And Apps Is Serverless》,他描述了一种场景,从用户自己维护的物理...

中间件小哥
2018/08/13
33
0
利用函数计算实现网络游戏或视频直播中的敏感词检测

一、概述 目前,网络游戏和视频直播都是很火爆的产业,然而,无论在多人在线网络游戏(MMORPG)中,还是在游戏视频直播或者其他直播中(弹幕),玩家或者用户的在线交流和互动都是它们的核心乐趣...

rsong
2017/12/26
0
0
5分钟Serverless实践:构建无服务器的图片分类系统

前 言 在过去“5分钟Serverless实践”系列文章中,我们介绍了如何构建无服务器API和Web应用,从本质上来说,它们都属于基于APIG触发器对外提供一个无服务器API的场景。现在本文将介绍一种新的...

中间件小哥
2018/09/14
16
0

没有更多内容

加载失败,请刷新页面

加载更多

centos 查看删除旧内核

1、查看系统中安装的内核 $ yum list installed | grep kernel 2、删除系统中旧内核 $ yum install yum-utils$ package-cleanup --oldkernels --count=2...

编程老陆
27分钟前
7
0
ES6

ES6:不改变原理的基础上,让API变得更简单 一、let:代替var用于声明变量 1、var的缺点: (1)声明提前 (2)没有块级作用域 2、let的优点: (1)组织了申明提前 (2)让let所在的块({}),...

wytao1995
今天
3
0
kubernetes 环境搭建 —— minikube

创建集群 minikube start 搭建好 k8s 集群后,可以查看集群的状态以及部署应用。主要用到的是 k8s 的 api,这通常需借助于 kutectl 命令行工具 基本操作 kubectl versionkubectl cluster-i...

lemos
今天
9
0
关于js混淆与反混淆还原操作

使用js的混淆加密,其目的是为了保护我们的前端代码逻辑,对应一些搞技术吃饭的公司来说,为了防止被竞争对手抓取或使用自己的代码,就会考虑如何加密,或者混淆js来达到代码保护。 1、为什么...

开源oschina
今天
11
0
用盛金公式解三次方程(ansi c版)

/* cc cubic.c -lm gcc cubic.c -lm Shengjin's Formulas Univariate cubic equation aX ^ 3 + bX ^ 2 + cX + d = 0, (a, b, c, d < R, and a!= 0). Multiple root disc......

wangxuwei
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部