5分钟搞定图片鉴黄web应用!

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

本文我们将介绍如何通过云函数服务快速构建一个无服务器的图片鉴黄web应用,如下图,该应用接收用户上传的图片,并对图片进行分析,判断是否为×××。


试想,如果我们通过传统的模式开发此应用,需要如何开发?

即使是基于现在的云平台,我们也仍需要购买云服务器,关注其规格、镜像、网络等各指标的选型和运维,然后在开发过程中可能还需要考虑与其他云服务的集成使用问题,使代码中耦合大量非业务代码,并且服务器等资源也并非是按需的,可能会造成大量多余的费用。

现在我们可以通过云函数服务来快速构建这个系统,并且完全无需关注服务器,且按需运行,如图:

创建函数,在函数中调用华为云内容检测服务提供的图片鉴黄接口,实现图片鉴黄功能,并为该函数配置一个APIG触发器,对外提供图片鉴黄的API,从而构建出一个完整的图片鉴黄无服务系统。然后将web页面的静态资源部署在对象存储服务(OBS)中,用户可以直接从OBS访问前端页面。用户上传图片时,页面调用前面构建的图片鉴黄API,他会自动触发函数执行,而开发者编写的函数只需实现接收到图片之后如何处理图片的逻辑(调用内容检测服务服务)即可,最后将结果返回给前端页面。至此,我们就构建了一个完整的无服务图片鉴黄web应用。

现在,我们将介绍如何端到端地将此无服务应用构建出来,详细教程可以参考:http://functiongraph-tutorial.obs-website.cn-north-1.myhwclouds.com/#/porn-image-analyse

后端系统搭建:
进入函数服务页面的图片鉴黄模板,该模板已经提供了本应用中函数的代码,按照代码注释中的指示创建函数之后,就成功搭建了本应用的后端系统,为函数所创建的APIG触发器会提供一个调用该后端函数的HTTP(s) API,供外部系统(如前端页面)调用。

前端页面搭建:
前端的展示形式有很多,这里我们提供了一份Demo供大家学习参考,可以通过上面的详细教程将前端代码包部署到OBS上,快速构建一个单页Web应用(SPA)。然后调用上一步后端提供的接口,连通后端系统,完成整个无服务图片鉴黄Web应用的构建。

总结:
通过基于函数工作流的无服务架构和传统架构的对比,我们可以看到其具有如下优点:

  1. 无需关注任何服务器,只需关注核心业务逻辑;
  2. 函数运行随业务量弹性伸缩,按需付费,执行才计费,低成本;
  3. 可以通过简单的配置连通函数工作流和其它云服务,甚至云服务和云服务,比如本例中只需创建一个APIG触发器便可完成API网关和函数工作流的连接,然后在函数中调用内容检测服务的鉴黄接口,那么函数就像一个粘合剂一样将两个云服务连接在一起。

落地页:
https://www.huaweicloud.com/product/functiongraph.html?utm_source= zjqd&utm_medium=mediafree&utm_campaign=functiongraph&utm_content=article-0727-2

关键词:FunctionGraph、serverless、无服务、图片处理、web应用

原文地址:http://blog.51cto.com/13831707/2151125

时间: 2024-10-29 07:32:05

5分钟搞定图片鉴黄web应用!的相关文章

5分钟Serverless实践 | 构建无服务器图片鉴黄Web应用

Serverless是什么 Serverless中文译为"无服务器",最早可以追溯到2012年Ken Fromm发表的<Why The Future Of Software And Apps Is Serverless>,他描述了一种场景,从用户自己维护的物理机,到IaaS,再到PaaS,计算模式的转变并不会停止,在云计算基础设施成熟的情况下应用程序可以不需要考虑服务器的存在,无服务器计算让开发者可以在不考虑服务器的情况下构建并运行应用程序和服务. 再到2016年,Mike

5分钟构建无服务图片鉴黄web应用(基于FunctionGraph)

函数工作流(FunctionGraph,FGS)是一项基于事件驱动的函数托管计算服务,托管函数具备以毫秒级弹性伸缩.免运维.高可靠的方式运行.即使在一些复杂的web应用场景中,函数工作流也能发挥出令人惊叹的实力. 通过函数工作流,开发者无需配置和管理服务器,只需关注业务逻辑,编写函数代码,以无服务器的方式构建应用,便能开发出一个弹性高可用的后端系统,并按实际运行消耗的资源计费.极大地提高了开发和运维效率,减小了运作成本. 本文我们将介绍如何通过函数工作流快速构建一个无服务的图片鉴黄web应用,如

一分钟搞定AlloyTouch图片轮播

一分钟搞定AlloyTouch图片轮播 轮播图也涉及到触摸和触摸反馈,同时,AlloyTouch可以把惯性运动打开或者关闭,并且设置min和max为运动区域,超出会自动回弹.除了一般的竖向滚动,AlloyTouch也可以支持横向滚动,甚至任何属性的运动,因为它的设计的本质就是属性无关,触摸可以反馈到任何属性的运动.所以AlloyTouch制作各种各样的轮播组件还是得心应手. 第一种轮播图如上图所示.下面开始实现的过程. 第0秒 <div id="carousel-container&quo

HDFS-异常大全-《每日五分钟搞定大数据》

点击看<每日五分钟搞定大数据>完整思维导图以及所有文章目录 问题1:Decomminssioning退役datanode(即删除节点) 1.配置exclude: <name>dfs.hosts.exclude</name> <value>/data/hadoop/excludes</value> 在/data/hadoop/excludes文件添加要退役的节点ip(可同时退役多个,一个一行) 2.配置完后刷新节点 # $HADOOP_HOME/b

一篇文章搞懂DataSet、DataFrame、RDD-《每日五分钟搞定大数据》

1. 三者共性: 1.RDD.DataFrame.Dataset全都是spark平台下的分布式弹性数据集,为处理超大型数据提供便利 2.三者都有惰性机制,执行trainform操作时不会立即执行,遇到Action才会执行 3.三者都会根据spark的内存情况自动缓存运算,这样即使数据量很大,也不用担心会内存溢出 4.三者都有partition的概念,如 var predata=data.repartition(24).mapPartitions{       PartLine => {     

zookeeper-非常重要的zab协议-《每日五分钟搞定大数据》

上篇文章paxos与一致性说到zab是在paxos的基础上做了重要的改造,解决了一系列的问题,这一篇我们就来说下这个zab. zab协议的全称是ZooKeeper Atomic Broadcast即zookeeper"原子""广播"协议.它规定了两种模式:崩溃恢复和消息广播 恢复模式 什么时候进入? 当整个服务框架在启动过程中 当Leader服务器出现网络中断崩溃退出与重启等异常情况 当有新的服务器加入到集群中且集群处于正常状态(广播模式),新服会与leader进行

Spring Boot 返回 XML 数据,一分钟搞定!

Spring Boot 返回 XML 数据,前提必须已经搭建了 Spring Boot 项目,所以这一块代码就不贴了,可以点击查看之前分享的 Spring Boot 返回 JSON 数据,一分钟搞定!. 你所需具备的基础 什么是 Spring Boot? Spring Boot 核心配置文件详解 Spring Boot 开启的 2 种方式 Spring Boot 自动配置原理.实战 Spring Boot 2.x 启动全过程源码分析 更多请在Java技术栈微信公众号后台回复关键字:boot. 如

zabbix3.0 使用SS代替netstat无需脚本,1分钟搞定TCP状态监控

这段时间一直忙,没时间好好理下监控,趁着假期有时间,理了一下. 对于zabbix监控TCP状态,在网上查了很多资料,大多数都是使用netstat命令来实现. 如果服务器的压力小,链接少,不会有问题,但随着服务器压力和链接数的增加,用netstat就会造成执行速度慢,server端无法接收到执行结果,造成监控异常. 平时一直用SS,所以试着用SS代替netstat,速度快了不少. 个人较喜欢偷懒,看到网上很多少写了非常长的脚本,又是函数,又是写临时文件的.其实完全没必要,不用写啥脚本,临时文件,很

1分钟搞定Android开发智能提示问题xml文件一并搞定

eclipse 搭建的Android开发环境,但是开发起来发现IDE的提示功能不是很理想,在此总结了一下,1分钟内,2步搞定! 如下: 1.设置.java文件的提示 将红框中的值设置为:.abcdefghigklmnopqrstuvwxyz 这样输入任何小写字母都能唤出提示了. t2.jpg (958.47 KB, 下载次数: 0) 下载附件 12 分钟前 上传 效果如下: 2.设置.xml文件的提示 效果如下: