- Serverless從入門到進階:架構、原理與實踐
- 方坤丁 孫遠高
- 568字
- 2021-06-24 11:19:08
3.3 生命周期
了解了事件模型后,我們模擬事件觸發的場景,繼續了解FaaS的生命周期,如圖3-3所示。

圖3-3 FaaS平臺生命周期
從圖3-3中可以看出,開發者在創建FaaS服務時,從本地上傳、選取模板創建對應的函數,函數上傳到FaaS平臺后,會提供運行環境托管用戶業務代碼。開發者可以在代碼中調用BaaS服務,這樣就完成了FaaS服務的創建。
終端用戶通過事件觸發的方式訪問FaaS服務(包含COS、消息隊列、定時任務、網關等多種觸發器)。觸發事件發生后,FaaS平臺將分配對應的實例運行用戶上傳的代碼、執行業務邏輯,并訪問對應的BaaS服務,從而實現業務訪問。
FaaS是分布式、事件驅動的架構,其核心節點為一個個函數實例。通過上述流程可知,函數實例的生命周期有以下兩個特點。
- 函數實例按需運行,在長時間未被事件觸發時,處于關閉狀態。
- 事件觸發時,函數才會被啟動和運行。
為了高效地復用函數實例,公有云服務商會在函數實例啟動后,將實例保留一定時間,從而避免頻繁創建和銷毀資源。因此可知,函數實例的生命周期主要有以下幾個階段。
- 事件觸發。
- 創建及啟動函數實例。
- 執行函數觸發邏輯并返回結果。
- 在實例保留時間內,如有新的請求,再次執行啟動或觸發階段。
- 等待一段時間,若無新的事件請求,則銷毀函數實例。
了解了函數的生命周期后,在業務邏輯中,可以有針對性地提供最佳實踐,例如將變量定義、數據庫連接放在啟動階段,將事件觸發相關邏輯放在觸發階段等。
推薦閱讀
- 軟件項目估算
- 微信公眾平臺與小程序開發:從零搭建整套系統
- 網絡爬蟲原理與實踐:基于C#語言
- Flutter跨平臺開發入門與實戰
- 圖數據庫實戰
- CoffeeScript Application Development Cookbook
- Node Cookbook(Second Edition)
- Procedural Content Generation for C++ Game Development
- Instant Debian:Build a Web Server
- Arduino可穿戴設備開發
- Delphi開發典型模塊大全(修訂版)
- 數字媒體技術概論
- ROS機器人編程實戰
- PHP項目開發全程實錄(第4版)
- 美麗洞察力:從化妝品行業看顧客需求洞察