本篇文章945字,讀完約2分鐘
阿里云國際站經(jīng)銷商,主營阿里云,騰訊云,華為云,亞馬遜aws,谷歌云gcp,微軟云az,免費開戶,代充值優(yōu)惠大,聯(lián)系客服飛機@jkkddd
本文介紹了Serverless工作流的回調(diào)功能。相比較輪詢,使用回調(diào)有效地降低了延遲、減少了輪詢對服務(wù)器造成的不必要壓力。另外,回調(diào)功能配合隊列可以實現(xiàn)對非FC任務(wù)的編排,將Serverless工作流的編排范圍擴展到任意類型的計算資源。簡介
長時間執(zhí)行的任務(wù)通常會采用異步提交任務(wù)并返回任務(wù)標(biāo)識(ID),判斷異步任務(wù)結(jié)束的方法通常有兩種:輪詢(polling)和回調(diào)(callback),在任務(wù)狀態(tài)輪詢中我們介紹了使用輪詢來判斷任務(wù)結(jié)束。Serverless工作流的回調(diào)(callback)功能,覆蓋以下的痛點或場景:
消除輪詢周期長帶來的不必要延遲。
消除大流量場景下高并發(fā)的輪詢造成不必要的服務(wù)器資源壓力和浪費。
編排非FC Function的任務(wù),例如運行在自建機房或ECS上的進(jìn)程。
需要人工干預(yù)的步驟,例如通知審批通過。
下圖展示了使用MNS隊列服務(wù)集成結(jié)合回調(diào)API編排自建資源,拓寬Serverless工作流的適用場景。
回調(diào)使用詳解
在Task步驟中指定pattern: waitForCallback,如下圖狀態(tài)機所示:該步驟會在提交resourceArn指定的任務(wù)后(如FC invocation)該步驟會將一個taskToken存入到該步驟的context對象并進(jìn)入一個暫停的狀態(tài),直到Serverless工作流收到回調(diào)或指定的任務(wù)超時。將taskToken傳入ReportTaskSucceed或ReportTaskFailed接口去回調(diào)會使得該步驟繼續(xù)執(zhí)行。
示例
該示例共分為以下3個步驟:
準(zhǔn)備Task Function
開始工作流
回調(diào)
步驟1:準(zhǔn)備Task Function
創(chuàng)建下面一個簡單的函數(shù),該函數(shù)會將輸入直接返回。
服務(wù):fnf-demo。
函數(shù):echo。
運行環(huán)境:python2.7。
函數(shù)入口:index.handler。
步驟2:開始工作流
創(chuàng)建流程,并開始執(zhí)行。
流程名稱:fnf-demo-callback。
流程角色:配置一個有FC Invocation權(quán)限的角色。
標(biāo)題:阿里云國際賬號購買,阿里云服務(wù)器購買
地址:http://www.pengfei-china.com/kfxw/64302.html