写点什么

5 分钟 Serverless 实践丨构建无服务器的图片分类系统

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

    阅读完需:约 6 分钟

5分钟Serverless实践丨构建无服务器的图片分类系统

在过去“5 分钟 Serverless 实践”系列文章中,我们介绍了如何构建无服务器 API 和 Web 应用,从本质上来说,它们都属于基于 APIG 触发器对外提供一个无服务器 API 的场景。现在本文将介绍一种新的设计模式:基于事件的实时数据处理。为了更形象地描述,我们以图片分类为例,先介绍通过 APIG 触发器如何构建一个图片分类的 Web 应用,再介绍通过 OBS 触发器如何构造一个实时的图片分类系统。

Serverless 优势

相比于传统的架构,无服务器架构具有如下优点:


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

  • 事件触发,灵活扩展

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

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

构建无服务器的图片分类 Web 应用

像以往的文章介绍的那样,serverless 很擅长构建一个 Web 应用,如下图,该系统会将用户上传的图片进行分类,并打上类别标签。



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



创建函数,在函数中调用华为云图片分析服务的图片标签接口,给图片打标签分类。再为该函数配置一个 APIG 触发器,这样便可以对外提供一个图片分类的 API,最后部署前端页面到 OBS,托管为静态网站,从而构建出一个完整的图片分类的无服务器 Web 应用。页面调用 API,他会自动触发函数执行,而开发者编写的函数只需实现接收到图片之后如何处理图片的逻辑即可,最后将结果返回给页面。


接下来,我们将介绍如何完整地将此无服务器 Web 应用构建出来。

01 准备工作

进入华为云图片检测服务,申请开通图片检测服务的图片标签功能,成功申请后便可以调用图片标签接口了。

02 构建后端程序

进入函数工作流服务,选择模板“图片打标签 Web 后端”,创建函数。函数创建完成之后,为其配置具有 IAM 访问权限的委托,因为本函数代码中获取用户的 ak、sk 需要拥有访问 IAM 的权限。



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



至此,我们就成功地构建了一个无服务器的图片分类 API。

03 搭建前端页面

为了更方便地搭建前端页面,我们提供了对应的函数模板实现快速构建前端页面。选择模板“图片打标签 Web 前端”,创建函数,其中自定义数据 REST_API 中设置上一步创建的 API URL,创建完成后,函数详情页面的“触发器”栏中的 URL 就是页面的浏览器访问地址。


至此,我们就成功地构建了一个无服务器的图片分类 Web 应用。接下来,我们将介绍另一种场景。

构建事件触发的实时图片分类系统

本文接下来将具体介绍事件触发的实时数据处理场景,考虑下面场景,用户上传图片到 OBS 桶中,需要自动执行图片分类,并按照类别转储到另一个桶的不同目录下。比如下面这个例子,上传一张企鹅图片到一个桶,图片就会自动转储到另一个桶对应的 pengull、seabird、bird 目录下。



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



创建函数,在函数中调用华为云图片分析服务的图片标签接口,给图片打标签分类。再为该函数配置一个 OBS 触发器,监控桶的 POST 事件,当向该桶上传一个文件时,便会自动触发函数执行,从而实现一个基于事件触发的无服务器系统。用户向桶中上传一张图片,它会自动触发函数执行,而开发者编写的函数只需实现从桶中下载图片并分类转储的逻辑即可。


接下来,我们将介绍如何完整地将此事件触发的图片分类系统构建出来。

01 准备工作

①申请开通图像识别服务“图像标签”功能



②进入对象存储服务(OBS)服务,创建两个桶,一个用于接收待分类的图片(source),一个用于存储分类后的图片(result),并将桶的“桶策略”设为公共读写。

02 创建函数

①进入函数工作流服务创建函数页面,选择“图片实时分类(按图片类型)”函数模板,该模板已为您提供本案例的代码。


②设置环境变量 result_bucket 为存储分类后图片的桶的名称(result)


③配置 OBS 触发器,桶选择接受待分类图片的桶(source),事件选择 post。当向桶中上传新图片时,会触发函数执行。


④点击创建,创建函数和触发器。


03 配置函数

①进入函数详情页面,进入“配置”标签,给函数设置一个具有访问 IAM 和 OBS 权限的委托,使函数能够获取到用户的 AK、SK,并访问 OBS 桶资源。


②保存配置

04 测试函数

①向接收待分类图片的桶(source)中上传一张图片


②查看存储分类结果的桶(result)中的文件,会发现图片存储到了对应类别的目录下。


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


原文链接:


https://mp.weixin.qq.com/s/SY-dxodw22qknvgxA3pTpQ


2019-10-21 23:30656

评论

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

技术同学的职场成长晋升指南

老张

职场成长 职场晋升

互联网广告新商机:全媒体广告业务代理授权加盟 80%利润空间

互联网创业说

阿里实习生:面试阿里其实并没有那么难。

王中阳Go

Go golang 面试题 大厂面经

人工智能ChatGPT带你领略晋级之路

测吧(北京)科技有限公司

测试

Plugin Alliance ADPTR Everything Bundle mac v2024.04.24激活版

影影绰绰一往直前

TechTool Pro for mac(硬件监测和系统维护工具)v19.0.4中文激活版

影影绰绰一往直前

TechTool Pro下载 TechTool Pro破解版 TechTool Pro激活版 TechTool Pro mac

互联网小本创业项目 信息流广告代理 低门槛创业

互联网广告小哥

重磅!点量云流渲染服务七天试用版发布!

点量实时云渲染

云渲染 实时云渲染 点量云流 七天试用

怎么成为腾讯广告代理商,微信朋友圈广告代理怎么做

微点全媒体广告运营

互联网广告代理 信息流广告代理 朋友圈广告代理 微信广告代理加盟

专家解读 | NIST网络安全框架(1):框架概览

权说安全

网络安全

ChatGPT4 Turbo 如何升级体验?官网如何使用最新版GPT-4 Turbo?

蓉蓉

GPT-4 Turbo

AI数字人直播:未来直播新风潮!

青否数字人

低代码优于无代码?

禅道项目管理

软件开发 低代码 知识分享 无代码 开发人员

全媒体信息流广告代理 互联网广告加盟 月入十万

陈老师讲创业

互联网广告代理如何去做 全媒体广告代理前景优势

全媒体大佬

晋级报告不会写,ChatGPT来帮你!

霍格沃兹测试开发学社

深入了解Appium:Capability 高级配置技巧解析

霍格沃兹测试开发学社

人工智能ChatGPT带你领略晋级之路

测试人

软件测试

降本增效,火山引擎ByteHouse助力短剧广告投放效率提升5倍

字节跳动数据平台

大数据 数据仓库 云原生 解决方案 短剧

Deckset for Mac(MD文档转幻灯片软件)v2.0.29激活版

影影绰绰一往直前

Deckset下载 Deckset激活版 Deckset mac

教你用Perl实现Smgp协议

华为云开发者联盟

Linux 开发 华为云 华为云开发者联盟

多优先级线程池实践

FunTester

TablePlus for Mac:强大的数据库管理助手

影影绰绰一往直前

TablePlus激活版 TablePlus下载 TablePlus破解版 TablePlus mac

Tower for Mac v11.0 注册激活版:Git客户端软件

影影绰绰一往直前

Tower下载 Tower mac Tower破解

OpenTiny Vue 3.15.0 正式发布,推出全新的 Charts 图表组件底座,功能更强、图表更丰富!

OpenTiny社区

Vue Web 前端开发 开源组件库

Final Draft for Mac(剧本写作软件)v13.1.0激活版

影影绰绰一往直前

Final Draft 13下载 Final Draft 13破解版 Final Draft 13 mac

虾皮Shopee API商品详情返回值全面解析

技术冰糖葫芦

API API Explorer API boy pinduoduo API

币安链市值机器人

区块链技术

青否数字人发布数字人直播源码,数字人制作成本将大幅降低!

青否数字人

A Better Finder Rename 12 for Mac v12.05直装版 批量重命名工具

影影绰绰一往直前

ABFR下载

淘宝搜索API返回值解析与关键字搜索背后的数据逻辑

技术冰糖葫芦

API Explorer API boy API】 pinduoduo API

5分钟Serverless实践丨构建无服务器的图片分类系统_文化 & 方法_李壮_InfoQ精选文章