快速搭建 Serverless 人臉識別離線服務

2021-10-01 16:10:40 字數 3126 閱讀 1596

函式計算(function compute):函式計算是乙個事件驅動的服務,通過函式計算,使用者無需管理伺服器等運**況,只需編寫**並上傳。函式計算準備計算資源,並以彈性伸縮的方式執行使用者**,而使用者只需根據實際**執行所消耗的資源進行付費。函式計算更多資訊參考

函式工作流(function flow):函式工作流是乙個用來協調多個分布式任務執行的全託管雲服務。使用者可以用順序,分支,並行等方式來編排分布式任務,fnf 會按照設定好的步驟可靠地協調任務執行,跟蹤每個任務的狀態轉換,並在必要時執行使用者定義的重試邏輯,以確保工作流順利完成。函式工作流更多資訊參考

開通服務

免費開通函式計算,按量付費,函式計算有很大的免費額度。

免費開通函式工作流,按量付費,目前該產品在公測階段,可以免費使用。

免費開通物件儲存,按量付費。

解決方案

流程如下:

設定定時觸發器,定時觸發函式計算中的函式。

函式被觸發後,呼叫一次函式工作流中的流程。

函式工作流中的流程被執行:

呼叫函式計算中的函式,列舉出 oss bucket 根路徑下的檔案列表。

對於步驟1中列出的檔案列表,對每個檔案:

- 呼叫函式計算中的函式處理,進行人臉識別並標註。將標註後的檔案存入 oss,最後將處理過的檔案進行轉移。
判斷當前 oss 根路徑下是否有更多的檔案

- 如是,繼續步驟1

- 如否,結束流程

clone 工程到本地

替換專案目錄下 template.yml 檔案中的your_bucket_name為在杭州區域的 oss bucket (可以不是杭州區域的,需要同步修改oss_endpoint)

rostemplateformatversion: '2015-09-01'

transform: 'aliyun::serverless-2018-04-03'

resources:

face-recognition:

type: 'aliyun::serverless::service'

properties:

policies:

- version: '1'

statement:

- effect: allow

action:

- 'oss:listobjects'

- 'oss:getobject'

- 'oss:putobject'

- 'oss:deleteobject'

- 'fnf:*'

resource: '*'

listobjects:

type: 'aliyun::serverless::function'

properties:

handler: index.handler

runtime: python3

timeout: 60

memorysize: 128

codeuri: functions/listobjects

environmentvariables:

oss_endpoint: ''

detectfaces:

type: 'aliyun::serverless::function'

properties:

handler: index.handler

runtime: python3

timeout: 60

memorysize: 512

codeuri: functions/detectfaces

environmentvariables:

oss_endpoint: ''

timer:

type: 'aliyun::serverless::function'

properties:

handler: index.handler

runtime: python3

timeout: 60

memorysize: 512

codeuri: functions/timer

events:

timetrigger:

type: timer

properties:

cronexpression: '0 * * * * *'

enable: true

# replace your_bucket_name to your oss bucket name

payload: '"}'

oss-batch-process:

type: 'aliyun::serverless::flow'

properties:

description: batch process flow

definitionuri: flows/index.flow.yml

policies:

- aliyunfcinvocationaccess

一鍵部署函式計算和函式工作流資源至雲端

在 oss bucket 的根目錄下放置

等待一分鐘後,定時觸發器觸發函式執行函式工作流。

工作流執行完成後,檢視 oss bucket

通過 函式計算 + 函式工作流,搭建了乙個定時批量處理進行人臉識別的服務。該服務因為使用了函式工作流的流程,將任務分為了多個步驟,只需要確保每個步驟的函式能夠在函式計算限制時間(10分鐘)內完成即可。

通過 fun 工具,一鍵部署 函式計算 + 函式工作流,免去去多平台進行操作的步驟。

相關參考

函式計算

函式工作流

aliyun serverless vscode 外掛程式

fun參考示例

serverless-face-recognition

oss-batch-process

「阿里巴巴雲原生關注微服務、serverless、容器、service mesh 等技術領域、聚焦雲原生流行技術趨勢、雲原生大規模的落地實踐,做最懂雲原生開發者的技術圈。」

快速搭建 Serverless 人臉識別離線服務

函式計算 function compute 函式計算是乙個事件驅動的服務,通過函式計算,使用者無需管理伺服器等運 況,只需編寫 並上傳。函式計算準備計算資源,並以彈性伸縮的方式執行使用者 而使用者只需根據實際 執行所消耗的資源進行付費。函式計算更多資訊參考 函式工作流 function flow 函...

快速了解serverless

serverless 無伺服器計算架構,是雲計算時代的一種革命性架構模式,可以看做下一代計算資源架構 serverless概念主要思想就是無需使用者關注支撐應用服務的底層主機資源服務,因此使用者在一定程度上不能設定後端地具體資源配置檔案,所需要的資源數量由平台動態進行排程,簡單的說就是 去基礎架構 ...

Gitlab 快速搭建

這篇部落格主要講一下gitlab如何進行快速搭建 安裝最快並且方便的安裝就是使用yum原來進行安裝,在安裝gitlab前的準備就是對yum源進行配置。gitlab的yum源有官網也有其他的,這裡我用的是清華大學的源。如下操作 vim etc yum.repos.d gitlab ce.repo gi...