函数工作流(FunctionGraph,FGS)是一项基于事件驱动的函数托管计算服务,托管函数具备以毫秒级弹性伸缩、免运维、高可靠的方式运行。即使在一些复杂的web应用场景中,函数工作流也能发挥出令人惊叹的实力。
通过函数工作流,开发者无需配置和管理服务器,只需关注业务逻辑,编写函数代码,以无服务器的方式构建应用,便能开发出一个弹性高可用的后端系统,并按实际运行消耗的资源计费。极大地提高了开发和运维效率,减小了运作成本。
本文我们将介绍如何通过函数工作流快速构建一个无服务的图片鉴黄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网关和函数工作流的连接,然后在函数中调用内容检测服务的鉴黄接口,那么函数就像一个粘合剂一样将两个云服务连接在一起。
函数工作流地址:http://t.cn/RDSM30R
相关推荐
在本文中,我们将深入探讨如何使用Microsoft Foundation Class (MFC) 库在Visual C++ 6.0环境下实现一个简单的Web服务器程序。MFC是微软为C++开发人员提供的一套面向对象的类库,它封装了Windows API,使得Windows...
基于微信小程序构建的web应用系统,适合毕业设计、课程设计及大作业等。 基于微信小程序构建的web应用系统,适合毕业设计、课程设计及大作业等。 基于微信小程序构建的web应用系统,适合毕业设计、课程设计及大...
5. **MVC(Model-View-Controller)设计模式**:在Java Web开发中,MVC模式被广泛应用于组织应用程序结构。了解模型、视图和控制器各自的角色,以及它们之间的交互,有助于构建清晰的项目架构。 6. **Struts框架**...
ASP.NET WebAPI2 是微软开发的一个用于构建RESTful服务的框架,它允许开发者轻松地创建HTTP服务,可以被各种客户端,包括浏览器、移动设备或桌面应用所使用。在现代Web应用中,基于Token的身份验证机制已经成为一种...
本项目是基于Kettle实现的Web版ETL工具,旨在提供一种更直观、易用的方式来执行数据处理任务,尤其适合需要进行简单数据抓取的应用场景。 首先,我们来深入理解一下Kettle的工作原理。Kettle的核心组件包括 Spoon...
在IT行业中,构建高效、可扩展的Web应用程序是至关重要的,而OSGi(Open Services Gateway Initiative)和Spring框架的结合提供了这样的解决方案。本篇将详细探讨如何基于OSGi和Spring来开发Web应用,并通过提供的...
基于AssetGraph的构建系统(主要用于单页Web应用程序)。 寻找Grunt集成? 尝试 快速开始 传统的 npm install -g assetgraph-builder buildProduction path/to/your/index.html -o path/to/output/directory ...
这个压缩包文件包含了使用GoAhead构建嵌入式Web应用的源代码示例,可以帮助开发者深入了解如何在实际项目中应用GoAhead。 1. **GoAhead概述** GoAhead是一个开源的C语言编写的小型Web服务器,它适用于资源有限的...
在IT行业中,C#是一种广泛使用的编程语言,尤其在构建Windows应用程序和服务方面。当我们谈论“C#建立最简单的Web服务,无需IIS”时,实际上是在讨论如何利用C#创建自托管的Web服务,这种服务不需要依赖于Internet ...
本项目"创建windows服务+Form+Web调用服务"结合了三种技术,旨在实现一个可以被用户界面(Form)和Web应用调用的后台服务。 1. **C# 创建 Windows 服务**: 在C#中,我们通常使用`System.ServiceProcess`命名空间...
基于微信小程序构建的web应用系统,适合毕业设计、课程设计及大作业等。 基于微信小程序构建的web应用系统,适合毕业设计、课程设计及大作业等。 基于微信小程序构建的web应用系统,适合毕业设计、课程设计及大...
基于微信小程序构建的web应用系统,适合毕业设计、课程设计及大作业等。 基于微信小程序构建的web应用系统,适合毕业设计、课程设计及大作业等。 基于微信小程序构建的web应用系统,适合毕业设计、课程设计及大...
基于微信小程序构建的web应用系统,适合毕业设计、课程设计及大作业等。 基于微信小程序构建的web应用系统,适合毕业设计、课程设计及大作业等。 基于微信小程序构建的web应用系统,适合毕业设计、课程设计及大...
基于微信小程序构建的web应用系统,适合毕业设计、课程设计及大作业等。 基于微信小程序构建的web应用系统,适合毕业设计、课程设计及大作业等。 基于微信小程序构建的web应用系统,适合毕业设计、课程设计及大...
基于微信小程序构建的web应用系统,适合毕业设计、课程设计及大作业等。 基于微信小程序构建的web应用系统,适合毕业设计、课程设计及大作业等。 基于微信小程序构建的web应用系统,适合毕业设计、课程设计及大...
基于微信小程序构建的web应用系统,适合毕业设计、课程设计及大作业等。 基于微信小程序构建的web应用系统,适合毕业设计、课程设计及大作业等。 基于微信小程序构建的web应用系统,适合毕业设计、课程设计及大...
基于微信小程序构建的web应用系统,适合毕业设计、课程设计及大作业等。 基于微信小程序构建的web应用系统,适合毕业设计、课程设计及大作业等。 基于微信小程序构建的web应用系统,适合毕业设计、课程设计及大...
enunciate, 基于Java的Web服务 项目构建时间增强工具 发音清晰of是一个构建时Web服务增强工具,可以以应用于基于Web服务端点源代码的java项目。有关更多信息,请参见 http://enunciate.webcohesion.com的项目站点。...
基于微信小程序构建的web应用系统,适合毕业设计、课程设计及大作业等。 基于微信小程序构建的web应用系统,适合毕业设计、课程设计及大作业等。 基于微信小程序构建的web应用系统,适合毕业设计、课程设计及大...
基于微信小程序构建的web应用系统,适合毕业设计、课程设计及大作业等。 基于微信小程序构建的web应用系统,适合毕业设计、课程设计及大作业等。 基于微信小程序构建的web应用系统,适合毕业设计、课程设计及大...