快速搭建Serverless人脸识别离线服务

  

简介

  

首先介绍下在本文出现的几个比较重要的概念:

  

函数计算(函数计算):函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费。函数计算更多信息参考

  

函数工作流(流)功能:函数工作流是一个用来协调多个分布式任务执行的全托管云服务。用户可以用顺序、分支,并行等方式来编排分布式任务,FnF会按照设定好的步骤可靠地协调任务执行,跟踪每个任务的状态转换,并在必要时执行用户定义的重试逻辑,以确保工作流顺利完成。函数工作流更多信息参考

  

本文将重点介绍如何快速地通过函数计算与函数工作流部署一个定时离线批量处理图片文件并标注出人脸的服务。

  

<强>开通服务

  
      <李>免费开通函数计算,按量付费,函数计算有很大的免费额度。   <李>免费开通函数工作流,按量付费,目前该产品在公测阶段,可以免费使用。   <李>免费开通对象存储,按量付费。   
  

<>强解决方案

  

快速搭建Serverless人脸识别离线服务

  

流程如下:

  
      <李>设定定时触发器,定时触发函数计算中的函数。   <李>函数被触发后,调用一次函数工作流中的流程。   <李>   

    函数工作流中的流程被执行:

      
        <李>调用函数计算中的函数,列举出OSS斗根路径下的图片文件列表。   <李>对于步骤1中列出的文件列表,对每个文件:李   
      
        <李>   

      调用函数计算中的函数处理,进行人脸识别并标注。将标注后的文件存入OSS,最后将处理过的文件进行转移。

           <李>判断当前OSS根路径下是否有更多的文件   
  李   <李>如是,继续步骤1   <李>如否,结束流程李      李      

快速开始

  
      <李>   

    克隆工程到本地

      
        <李> <代码> git克隆git@github.com: ChanDaoH/serverless-face-recognition.git   
      李   <李>替换项目目录下模板。yml文件中的<代码> YOUR_BUCKET_NAME> OSS_ENDPOINT>   
  
 <代码> ROSTemplateFormatVersion:“2015-09-01”
  变换:“阿里巴巴:serverless - 2018 - 04 - 03”
  资源:
  人脸识别:
  类型:“阿里巴巴::Serverless::服务”
  属性:
  政策:
  ——版本:' 1 '
  声明:
  效果:允许
  行动:
  ——“oss: ListObjects”
  ——“oss: GetObject”
  ——“oss: propertynames”
  ——“oss: DeleteObject”
  ——“fnf: *”
  资源:‘*’
  listObjects:
  类型:“阿里巴巴::Serverless::功能”
  属性:
  处理程序:index.handler
  运行时:python3
  超时:60
  MemorySize: 128/listobjects CodeUri:功能
  EnvironmentVariables:
  OSS_ENDPOINT:“https://oss-cn-hangzhou-internal.aliyuncs.com”
  detectFaces:
  类型:“阿里巴巴::Serverless::功能”
  属性:
  处理程序:index.handler
  运行时:python3
  超时:60
  MemorySize: 512/detectfaces CodeUri:功能
  EnvironmentVariables:
  OSS_ENDPOINT:“https://oss-cn-hangzhou-internal.aliyuncs.com”
  定时器:
  类型:“阿里巴巴::Serverless::功能”
  属性:
  处理程序:index.handler
  运行时:python3
  超时:60
  MemorySize: 512
  CodeUri:功能/计时器
  事件:
  timeTrigger:
  类型:定时器
  属性:
  CronExpression:“0 * * * * *”
  启用:真
  #取代YOUR_BUCKET_NAME oss bucket名称
  有效载荷:{“flowName”:“oss-batch-process”、“输入”:“{\“斗\”:\“YOUR_BUCKET_NAME \”, \“前缀\”:\“\”}“}”
  oss-batch-process:
  类型:“阿里巴巴::Serverless:流”
  属性:
  描述:批处理流程/index.flow.yml DefinitionUri:流
  政策:
  ——AliyunFCInvocationAccess  
     <李>   

一键部署函数计算和函数工作流资源至云端