您好,登錄后才能下訂單哦!
首先介紹下在本文出現(xiàn)的幾個(gè)比較重要的概念:
函數(shù)計(jì)算(Function Compute):函數(shù)計(jì)算是一個(gè)事件驅(qū)動(dòng)的服務(wù),通過(guò)函數(shù)計(jì)算,用戶無(wú)需管理服務(wù)器等運(yùn)行情況,只需編寫代碼并上傳。函數(shù)計(jì)算準(zhǔn)備計(jì)算資源,并以彈性伸縮的方式運(yùn)行用戶代碼,而用戶只需根據(jù)實(shí)際代碼運(yùn)行所消耗的資源進(jìn)行付費(fèi)。函數(shù)計(jì)算更多信息參考
函數(shù)工作流(Function Flow):函數(shù)工作流是一個(gè)用來(lái)協(xié)調(diào)多個(gè)分布式任務(wù)執(zhí)行的全托管云服務(wù)。用戶可以用順序,分支,并行等方式來(lái)編排分布式任務(wù),F(xiàn)nF 會(huì)按照設(shè)定好的步驟可靠地協(xié)調(diào)任務(wù)執(zhí)行,跟蹤每個(gè)任務(wù)的狀態(tài)轉(zhuǎn)換,并在必要時(shí)執(zhí)行用戶定義的重試邏輯,以確保工作流順利完成。函數(shù)工作流更多信息參考
本文將重點(diǎn)介紹如何快速地通過(guò)函數(shù)計(jì)算與函數(shù)工作流部署一個(gè)定時(shí)離線批量處理圖片文件并標(biāo)注出人臉的服務(wù)。
開(kāi)通服務(wù)
解決方案
流程如下:
函數(shù)工作流中的流程被執(zhí)行:
調(diào)用函數(shù)計(jì)算中的函數(shù)處理,進(jìn)行人臉識(shí)別并標(biāo)注。將標(biāo)注后的文件存入 OSS,最后將處理過(guò)的文件進(jìn)行轉(zhuǎn)移。
Clone 工程到本地
git clone git@github.com:ChanDaoH/serverless-face-recognition.git
YOUR_BUCKET_NAME
為在杭州區(qū)域的 OSS Bucket (可以不是杭州區(qū)域的,需要同步修改 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: 'https://oss-cn-hangzhou-internal.aliyuncs.com'
detectFaces:
Type: 'Aliyun::Serverless::Function'
Properties:
Handler: index.handler
Runtime: python3
Timeout: 60
MemorySize: 512
CodeUri: functions/detectfaces
EnvironmentVariables:
OSS_ENDPOINT: 'https://oss-cn-hangzhou-internal.aliyuncs.com'
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: '{"flowName": "oss-batch-process", "input": "{\"bucket\": \"YOUR_BUCKET_NAME\",\"prefix\":\"\"}"}'
oss-batch-process:
Type: 'Aliyun::Serverless::Flow'
Properties:
Description: batch process flow
DefinitionUri: flows/index.flow.yml
Policies:
- AliyunFCInvocationAccess
一鍵部署函數(shù)計(jì)算和函數(shù)工作流資源至云端
fun deploy
工作流執(zhí)行完成后,查看 OSS Bucket
face-detection
目錄下processed
目錄下通過(guò) 函數(shù)計(jì)算 + 函數(shù)工作流,搭建了一個(gè)定時(shí)批量處理圖片進(jìn)行人臉識(shí)別的服務(wù)。該服務(wù)因?yàn)槭褂昧撕瘮?shù)工作流的流程,將任務(wù)分為了多個(gè)步驟,只需要確保每個(gè)步驟的函數(shù)能夠在函數(shù)計(jì)算限制時(shí)間(10分鐘)內(nèi)完成即可。
通過(guò) Fun 工具,一鍵部署 函數(shù)計(jì)算 + 函數(shù)工作流,免去去多平臺(tái)進(jìn)行操作的步驟。
相關(guān)參考
參考示例
“阿里巴巴云原生關(guān)注微服務(wù)、Serverless、容器、Service Mesh 等技術(shù)領(lǐng)域、聚焦云原生流行技術(shù)趨勢(shì)、云原生大規(guī)模的落地實(shí)踐,做最懂云原生開(kāi)發(fā)者的技術(shù)圈。”
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。