写点什么

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

  • 2019-10-21
  • 本文字数:1445 字

    阅读完需:约 5 分钟

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

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

函数工作流

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


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

01 无需服务器

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

02 按需付费

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

03 配置简便

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

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

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



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


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



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


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

01 准备工作

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

02 创建函数

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




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

03 创建 APIG 触发器

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



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


04 测试

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


比如发送 {“msg”: “just fuck …”}, 返回体为 {“result”: “just …”}


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


本文转载自公众号中间件小哥(ID:huawei_kevin)。


原文链接:


https://mp.weixin.qq.com/s/xVy3XYxAjdxYgRpPduD8Sg


2019-10-21 15:331111

评论

发布
暂无评论
发现更多内容

重磅升级!TDengine3.0正式发布

TDengine

数据库 tdengine 时序数据库

带你玩转“超大杯”ECS特性及实验踩坑

科技怪咖

基于DevCloud进行黑白棋实时对战游戏开发实践

科技怪咖

CSDN 加入星策开源社区,携手推动企业智能化转型建设

星策开源社区

企业转型 智能化 CSDN

MySql主从同步介绍

京东科技开发者

MySQL 数据库 主从同步

企业实践|基于软件研运一体化DevOps平台的应用解析

云智慧AIOps社区

DevOps 自动化 敏捷开发 研发管理 代码托管

对话张星亮,洞察本质,SaaS首先是一种商业模式

B Impact

7 天找个 Go 工作,Gopher 要学的条件语句,循环语句 ,第3篇

梦想橡皮擦

Python 爬虫 8月月更

软件测试100天上岸1-测试就是找茬游戏

和牛

测试 8月月更

直播系统源码——重视哪些功能的开发?

开源直播系统源码

软件开发 直播系统源码 直播功能

从0到1打造推荐系统工程实战

Jay Wu

推荐系统

容器化 | 一文搞定镜像构建方式选型

RadonDB

MySQL Docker Kubernetes 镜像 RadonDB

HUAWEI内网最新发布了一份452页网络协议手册,GitHb百万收藏

小柴说Java

Java 网络协议 java程序员 TCP/IP Java工程师

【Java】:程序流程的控制

翼同学

Java 学习 编程语言 分享 8月月更

什么是IP 欺骗以及如何防范?

郑州埃文科技

网络安全 IP

干货!XDR产品安全检测体系如何更好的落地?

极盾科技

网络安全 安全 信息安全 数据安全 xdr

点赞破百万!字节算法大佬亲撰30W字数据算法笔记:GitHub标星93K

小柴说Java

数据结构 算法 算法题 算法与数据结构 算法面试题

谁在构建超云?

Kent Yao

超云

小企业自动化运维管理用什么软件好?有便宜的吗?

行云管家

IT运维 行云管家 自动化运维 小企业

极盾·析策,XDR的正确打开方式

极盾科技

网络安全 安全 数据安全 xdr

XSKY星辰天合与观测云完成产品兼容性互认证 构建全业务链路的可观测性

观测云

推荐 | 移动开发主流热更新技术

Speedoooo

小程序 APP开发 热更新

兆骑科创创新创业大赛,双创活动,赛事承办,三招三引

兆骑科创凤阁

火热与争议并行,XDR路在何方?

极盾科技

网络安全 安全 信息安全 数据安全 xdr

从GitHub火到了InfoQ!共计1658页的《Java岗面试核心MCA版》,拿走不谢

收到请回复

Java 程序员 金九银十 Java面试八股文 常见面试题

兆骑科创国内外创新创业服务平台,创业大赛,企业落地孵化

兆骑科创凤阁

微信官方kbone,Web端同构的福音

Geek_99967b

小程序

Alibaba最新发布的Spring Boot项目实战文档,Github标星78k

Java面试那些事儿

Java Java 面试 java程序员 Java工程师 spring-boot

重磅发布!阿里云全链路数据湖开发治理解决方案

阿里云大数据AI技术

大数据 阿里云 数据湖 数据分析

让GitHub炸锅的深入理解MySQL实战手册,竟出自阿里云“藏经阁”

冉然学Java

Java MySQL 高可用 阿里 构架

什么是知识库,为什么需要它?

Geek_da0866

5分钟Serverless实践 | 构建无服务器的敏感词过滤后端系统_文化 & 方法_李壮_InfoQ精选文章