云函式作為新一代通用計算平臺的產品化載體,在云原生事件驅動框架下,對輕量的原子計算有較好的支持,但在 2k4K 音視頻處理、ETL 資料批處理、機器學習及 AI 推理等單任務重計算的場景下,對云函式的運行機制及現有的上限閾值提出了更多挑戰,
- 更長時間穩定運行
- 單實體更多算力
- 對運行中函式更強的狀態管控
- 執行情況實時反饋
云函式 SCF 首創提供了一種全新的函式運行機制,函式異步執行模式,在解決以上痛點的同時,可以拓展適用于更多的應用場景,
同步執行模式
首先對比了解下云函式現有的同步執行模式,以通過 API 網關觸發器同步呼叫云函式為例:

優點
- 全鏈路串行同步執行,模型簡單直觀易于理解
- 狀態精簡,邏輯分支、例外處理等成本低
同步執行模式,非常適合web應用、輕量API、IOT等時間短、計算量小的處理場景,
局限性
目前同步執行的超時時間上限為900s,整個呼叫鏈路涉及多個組件,所有組件都需要保持同步連接狀態,并保障自身在連接狀態下的穩定性,任意組件出現網路抖動或例外,都會影響呼叫的成功率,
另外,客戶端需要阻塞等待請求的回應,持續占用客戶端資源,在同步執行模式的架構下很難繼續拓展為重計算提供更長時間穩定的執行,
異步執行模式
同樣的API網關觸發器同步呼叫,來看下異步執行模式

函式異步執行模式特點
- 異步執行,發起事件呼叫立即回傳事件的呼叫標識 RequestId,函式運行時并行啟動執行
- 實時日志,執行日志實時上報,運行情況實時反饋
- 狀態管理,提供事件狀態的統計、查詢及終止等事件管理相關服務
不難看出,運行機制的重新設計,從根本上解耦了對全鏈路所有組件的穩定性依賴,將穩定運行時間延長至24小時,并提供近乎無上限的擴展性,在此基礎上,對長時運行程序中的日志由一次性上傳升級為實時上報,
作為提供基礎算力的資源層,以上可以滿足支撐資料批處理、大規模分布式計算等任務調度系統的構建,考慮到 Serverless 化產品理念是提供開箱即用、簡單高效的研發模型,云函式提供了對事件狀態的持久化及相關的管理服務能力,進一步降低了開發者自建和運維任務管理系統的成本,

如何在控制臺設定異步執行模式
- 登錄 云函式控制臺,單擊左側導航欄的【函式服務】,
- 在主界面上方選擇期望創建函式的地域,并單擊【新建】,進入函式創建流程,
- 選擇使用【空白函式】或選擇使用【函式模板】來新建函式,
- 在“函式配置”頁面,展開【高級設定】,并勾選【異步執行】,

- 單擊【完成】即可創建函式,
One More Thing
立即體驗騰訊云 Serverless Demo,領取 Serverless 新用戶禮包 ?? serverless/start
歡迎訪問:Serverless 中文網!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/265602.html
標籤:其他
