Microsoft Azure Functions
Microsoft Azure Functions 是 Microsoft Azure 平台上,提供無伺服器架構 (Serverless Computing) 的服務,允許開發人員在不用接觸與管理伺服器的情況下,編寫小型的處理程式以處理雲端上的訊息或事件。
Azure Functions 於微軟 Build 2016 大會上宣布,於同年11月15日正式 GA (General Availability)。
Azure Functions 已廣泛於用如 Azure Bot Services、Azure IoT Suite、Azure Logic App 等服務串聯。
簡介
Azure Functions 是以 Azure Web App 開發時所建立的 Microsoft Azure Azure Web Jobs 為基礎所開發的一個服務,Web Jobs 在開發時就已經支援多語言 (包含 Bash, 批次檔, C#, node.js, PowerShell, F#, Python 與 PHP 等) 的執行環境,因此在發展 Azure Functions 時,也將 Web Jobs 的多語言能力移植到 Azure Functions,同時基於無伺服器的架構,Azure Functions 只要求開發人員在 Azure 的管理介面上撰寫程式碼,即可立即測試與執行,不必擔心背後的資源分配與伺服器管理的問題。
Azure Functions 在設計上以函數 (function) 會有的特性來規劃,一個函數本身會有輸入 (input)、處理 (process) 與輸出 (output) 三個部份,微軟將輸入和輸出進行抽象化的處理,以繫結 (binding) 來替代 [1]。
- 輸入繫結 (input binding) 表示函數會於繫結指定的條件發生時觸發,並將條件所需的參數傳到函數作為輸入的參數 (argument)。
- 輸出繫結 (output binding) 表示函數會輸出成指定的格式,通常作為回傳值 (return value)。
Azure Functions 如同其他 Azure應用服務 一般,執行於 App Service Plan (應用服務計畫)[2] 之上,不過為了要達到無伺服器架構的目標,Azure Functions 還多了一個使用模式,稱為消費計畫 (Consumption Plan),以執行次數 (Executions) 和執行時的資源耗用量 (Resource Consumption) 為計費基礎 [3],但使用者可選擇要用原始的 App Service Plan 還是要使用計量級的 Consumption Plan 作為計費單位。