探索 Azure Functions

已完成

Azure Functions 是無伺服器解決方案,可讓您撰寫較少的程式碼、維護較少的基礎結構,並節省成本。 雲端基礎結構會提供讓應用程式保持執行所需的所有最新資源,而不需要擔心部署和維護伺服器。

我們通常會建置系統來因應一連串重大事件。 無論您是建置 Web API、回應資料庫變更、處理 IoT 資料流,或甚至是管理訊息佇列,每個應用程式在這些事件發生都需要設法執行某些程式碼。

Azure Functions 支援觸發程序繫結,前者是您開始執行程式碼的方式,後者是簡化輸入和輸出資料編碼的方式。 Azure 中有其他整合與自動化服務,全都可以解決整合問題,並將商務程序自動化。 這些工作全都可以定義輸入、動作、條件和輸出。

比較 Azure Functions 與 Azure Logic Apps

Functions 和 Logic Apps 都是可啟用無伺服器工作負載的 Azure 服務。 Azure Functions 是無伺服器計算服務,而 Azure Logic Apps 則是無伺服器工作流程整合平台。 這兩者都可以建立複雜的協調流程。 協調流程是函式或步驟的集合 (稱為 Logic Apps 中的動作),可執行以完成複雜的工作。

對於 Azure Functions,您需藉由撰寫程式碼及使用 Durable Functions 延伸模組來開發協調流程。 針對 Logic Apps,您要使用 GUI 或編輯設定檔來建立協調流程。

下表列出 Functions 與 Logic Apps 之間的一些主要差異:

Azure Functions Logic Apps
開發 程式碼優先 (命令式) Designer First (宣告式)
連線性 約有十幾個內建繫結類型、撰寫自訂繫結的程式碼 大型的連接器集合、適用於 B2B 案例的企業整合套件、建置自訂連接器
動作 每個活動都是 Azure 函式、撰寫活動函式的程式碼 大型的現成動作集合
監視 Azure Application Insights Azure 入口網站、Azure 監視器記錄
管理 REST API、Visual Studio Azure 入口網站、REST API、PowerShell、Visual Studio
執行內容 在 Azure 或在本機執行 在 Azure、在本機或內部部署執行

比較 Functions 與 WebJobs

如同 Azure Functions,使用 WebJobs SDK 的 Azure App Service WebJobs 是針對開發人員所設計的程式碼優先整合服務。 兩者都建置在 Azure App Service 上,並且支援如原始檔控制整合、驗證及使用 Application Insights 整合進行監視等功能。

Azure Functions 建置在 WebJobs SDK 上,因此其會與其他 Azure 服務共用許多相同的事件觸發程序和連線。 當您在 Azure Functions 與使用 WebJobs SDK 的 WebJobs 之間進行選擇時,可考慮以下這些因素:

函式 使用 WebJobs SDK 的 WebJobs
使用自動縮放的無伺服器應用程式模型 No
在瀏覽器中開發及測試 No
按使用次數付費的定價方式 No
與 Logic Apps 整合 No
觸發事件 計時器
Azure 儲存體佇列和 blob
Azure 服務匯流排佇列和主題
Azure Cosmos DB
Azure 事件中樞
HTTP/WebHook (GitHub
Slack)
Azure 事件網格
計時器
Azure 儲存體佇列和 blob
Azure 服務匯流排佇列和主題
Azure Cosmos DB
Azure 事件中樞
檔案系統

Azure Functions 較 Azure App Service WebJobs 提供更高的開發人員生產力。 其也提供更多程式設計語言、開發環境、Azure 服務整合及價格的選項。 對於大部分案例,這是最佳選擇。