写点什么

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

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

    阅读完需:约 6 分钟

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

AI 大模型超全落地场景&金融应用实践,8 月 16 - 19 日 FCon x AICon 大会联诀来袭、干货翻倍!

在过去“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:30689

评论

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

TiDB 多集群告警监控-初章-监控融合、自动告警处理

TiDB 社区干货传送门

监控 实践案例 集群管理

通过docker安装单机版minio简单测试br通过s3存储备份恢复数据

TiDB 社区干货传送门

备份 & 恢复

创新赛制,顶尖赛题!| 2023第二届粤港澳大湾区(黄埔)国际算法算例大赛十赛道虚位以待!

ModelWhale

人工智能 深度学习 数据竞赛 琶洲 粤港澳大湾区

《清华管理评论》:智能时代的人力资源管理“智效合一”转型

用友BIP

人力资源管理

性能全面飙升!StarRocks 在贝壳找房的极速统一实践

StarRocks

数据库 大数据 MPP 湖仓一体 贝壳找房

极光笔记 | 浅谈企业级SaaS产品的客户成长旅程管理(上)—— 分析篇

极光JIGUANG

产品 用户体验 SaaS 产品

@ControllerAdvice注解使用及原理探究 | 京东物流技术团队

京东科技开发者

spring 注解 源码解析 企业号 8 月 PK 榜 @ControllerAdvice

命令行非明文密码连接 TiDB

TiDB 社区干货传送门

实践案例 集群管理 数据库连接

ChatGPT 助力开发人员改进代码的5个方式

SEAL安全

开发者 ChatGPT 企业号 8 月 PK 榜

中企出海关心的多数据中心问题,答案在这里!

用友BIP

中企出海

实战指南:如何利用Postman流畅调试微信支付接口

Liam

程序员 后端 微信支付 Postman API 调试

合合信息通过ISO/IEC国际标准双认证,为全球用户提供高合规标准AI服务

合合技术团队

人工智能 数据安全 个人信息保护

TiProxy 尝鲜

TiDB 社区干货传送门

实践案例 6.x 实践

TiDB 优雅关闭

TiDB 社区干货传送门

TiDB 源码解读 6.x 实践

TiDB 源码编译之 PD/TiDB Dashboard 篇

TiDB 社区干货传送门

开发语言 7.x 实践

BenchmarkSQL 支持 TiDB 驱动以及 tidb-loadbalance

TiDB 社区干货传送门

开发语言 性能测评 应用适配 数据库连接

MobPush iOS SDK iOS实时活动

MobTech袤博科技

ios 消息推送 sdk

Duplicate File Finder Pro for mac(重复文件查找) 7.1.3中文版

mac

苹果mac Duplicate File Finder 查找删除重复文件

Web3到底是个啥?

BSN研习社

一种新型的系统设计解决方案:模块树驱动设计

得物技术

架构 架构设计 企业号 8 月 PK 榜

如何规划税务数智化建设

用友BIP

税务管理

千帆大模型平台最新升级:接入 Llama 2 等 33 个模型!

Baidu AICLOUD

千帆大模型平台 LMops

【PCSD考试笔记】

TiDB 社区干货传送门

TiDB 底层架构

华秋亮相2023世界汽车制造技术暨智能装备博览会,推动汽车产业快速发展

华秋电子

“有一群人在一起,就很好!”RTE Open Day 首场活动圆满结束

声网

活动

易点天下KreadoAI正式上架亚马逊云科技Marketplace全球商业化加速落地

新消费日报

合合信息与科瑞物业达成合作,数字名片提供企业数智化转型新机遇

合合技术团队

人工智能 合作 数字名片

TiProxy 原理和实现

TiDB 社区干货传送门

新版本/特性发布 TiDB 源码解读 6.x 实践 TiKV 源码解读

【SOP】最佳实践之 TiDB 业务写变慢分析

TiDB 社区干货传送门

性能调优 管理与运维 故障排查/诊断 应用适配

inIoT分享专栏丨如何破解物联网设备连接困境

inBuilder低代码平台

一种新的告警收敛方式“先知预警”,为您的系统健康护航 | 京东云技术团队

京东科技开发者

系统稳定性 预警监控 企业号 8 月 PK 榜

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