在 Azure 中選擇正確的整合和自動化服務

本文會比較下列 Microsoft 雲端服務:

所有這些服務都可以解決整合問題,以及自動化商業流程。 這些工作全都可以定義輸入、動作、條件和輸出。 您可以在排程或觸發程序上執行上述各項服務。 各服務都有獨特的優點,本文將說明這些差異。

注意

如果您要尋找 Azure Functions 與其他 Azure 計算選項之間的更廣泛的比較:

如需 Azure 中自動化服務選項的摘要和比較:

比較 Microsoft Power Automate 和 Azure Logic Apps

Power Automate 和 Azure Logic Apps 都是可建立工作流程的「設計工具優先」整合服務。 這兩個服務皆可與各種 SaaS 和企業應用程式整合。

Power Automate 是以 Azure Logic Apps 平台為建置基礎。 兩者都提供類似的工作流程設計工具與連接器

Power Automate 可讓任何辦公室工作人員有能力執行簡單的整合 (例如,SharePoint 文件庫中的核准程序),而不必透過開發人員或 IT。 Logic Apps 也可以實現需要企業級 Azure DevOps 和安全性做法的進階整合 (例如 B2B 處理程序)。 一般來說,商務工作流程會隨著時間而趨於複雜。

下表可協助您判斷最適合特定整合的是 Power Automate 還是 Logic Apps:

Power Automate Logic Apps
使用者 辦公室員工、商務使用者、SharePoint 系統管理員 專業的整合人員和開發人員,IT 專業人員
案例 自助服務 進階整合
設計工具 瀏覽器內及行動裝置應用程式,僅限 UI 在瀏覽器內,Visual Studio CodeVisual Studio 具有可用的程式碼檢視
應用程式生命週期管理 (ALM) Power Platform 提供工具以整合 DevOps 和 GitHub Actions,讓您可以使用 ALM 循環建置自動化管道。 Azure DevOps:在 Azure Resource Manager 中的原始檔控制、測試支援、自動化及管理性
管理員體驗 管理 Power Automate 環境和資料外洩防護 (DLP) 原則,追蹤授權:管理中心 管理資源群組、連線、存取管理和記錄:Azure 入口網站
安全性 Microsoft 365 安全性稽核記錄、DLP、敏感性資料靜止時加密 Azure 的安全性保證:Azure 安全性適用於雲端的 Microsoft Defender稽核記錄

比較 Azure Functions 與 Azure Logic Apps

Functions 和 Logic Apps 都是可啟用無伺服器工作負載的 Azure 服務。 Azure Functions 是無伺服器計算服務,而 Azure Logic Apps 則是無伺服器工作流程整合平台。 這兩者都可以建立複雜的協調流程。 協調流程是一系列的函式 (或 Azure Logic Apps 中的「動作」),可供您執行以完成複雜的工作。 例如處理命令批次,您可以平行執行許多函式執行個體、等待執行個體完成,然後執行函式來計算彙總結果。

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

您可以在建置協調流程時混合搭配服務,例如,從邏輯應用程式工作流程呼叫函式,以及從函式呼叫邏輯應用程式工作流程。 選擇如何建置每個協調流程,取決於服務的功能或您的個人喜好。 下表列出這些服務之間的一些主要差異:

長期函式 Azure Logic 應用程式
開發 程式碼優先 (命令式) Designer First (宣告式)
連線性 約有十幾個內建繫結類型、撰寫自訂繫結的程式碼 大型的連接器集合適用於 B2B 案例的企業整合套件建置自訂連接器
動作 每個活動都是 Azure 函式、撰寫活動函式的程式碼 現成動作的大型集合
監視 Azure Application Insights Azure 入口網站Azure 監視器記錄適用於雲端的 Microsoft Defender
管理 REST APIVisual Studio Azure 入口網站REST APIPowerShellVisual Studio
執行內容 可以在本機或雲端中執行 在 Azure 中、本機或內部部署環境執行。 如需詳細資訊,請參閱什麼是 Azure Logic Apps

比較 Functions 與 WebJobs

如同 Azure Functions,搭配 WebJobs SDK 的 Azure App Service WebJobs 是針對開發人員所設計的 Code First 整合服務。 兩者皆以 Azure App Service 為基礎,並支援原始檔控制整合驗證使用 Application Insights 整合進行監視等功能。

WebJob 和 WebJob SDK

您可以使用 App Service 的 WebJobs 功能在 App Service Web 應用程式的環境中執行指令碼或程式碼。 WebJobs SDK 是為 WebJobs 設計的架構,可簡化您在回應 Azure 服務中的事件時所撰寫的程式碼。 例如,您可藉由建立縮圖影像來回應 Azure 儲存體中的映像 Blob 建立。 WebJobs SDK 以 .NET 主控台應用程式的形式執行,您可以將其部署至 WebJob。

搭配使用 WebJobs 和 WebJobs SDK 的效果最好,但您也可以在沒有 WebJobs SDK 情況下使用 WebJobs,反之亦然。 WebJob 可執行 App Service 沙箱中執行的任何程式或指令碼。 WebJobs SDK 主控台應用程式可以在任何可執行主控台應用程式的地方執行,例如內部部署伺服器。

比較表

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

函式 使用 WebJobs SDK 的 WebJobs
無伺服器應用程式模型自動調整
在瀏覽器中開發及測試
按使用次數付費的定價方式
與 Logic Apps 整合
觸發事件 計時器
Azure 儲存體佇列和 Blob
Azure 服務匯流排佇列和主題
Azure Cosmos DB
Azure 事件中樞
HTTP/WebHook (GitHub、Slack)
事件格線
計時器
Azure 儲存體佇列和 Blob
Azure 服務匯流排佇列和主題
Azure Cosmos DB
Azure 事件中樞
檔案系統
支援的語言 C#
F#
JavaScript
Java
Python
PowerShell
C#1
套件管理員 npm 和 NuGet NuGet2

1 WebJobs (沒有 WebJobs SDK) 支援 C#、Java、JavaScript、Bash、.cmd、.bat、PowerShell、PHP、TypeScript、Python 等語言。 WebJob 可執行 App Service 沙箱中執行的任何程式或指令碼。

2 WebJobs (沒有 WebJobs SDK) 支援 npm 和 NuGet。

摘要

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

但在以下兩個案例中,WebJobs 可能是最好的選擇:

  • 您需要更充分地掌控接聽事件的程式碼 (JobHost 物件)。 Functions 提供有限的方式來自訂 host.json 檔案中的 JobHost 行為。 有時候,您需要執行的一些作業,無法由 JSON 檔案中的字串來指定。 例如,只有 WebJobs SDK 可讓您為 Azure 儲存體設定自訂的重試原則。
  • 您有要為其執行程式碼片段的 App Service 應用程式,而且想要在相同的 Azure DevOps 環境中一起管理。

針對其他需執行程式碼片段來整合 Azure 或第三方服務的情況,請選擇 Azure Functions,而不是搭配 WebJobs SDK 的 WebJobs。

Power Automate、Logic Apps、Functions 和 WebJobs 一起

您不必只選擇其中一項服務。 這些服務可彼此整合,也可以與外部服務整合。

Power Automate 流程可呼叫 Azure Logic Apps 工作流程。 Azure Logic Apps 工作流程可在 Azure Functions 中呼叫函式,反之亦然。 如需範例,請參閱建立與 Azure Logic Apps 整合的函式

在 Power Automate、Logic Apps 和 Functions 之間,這些服務間的整合體驗將持續改善。 您可以在一項服務中建置元件,並在其他服務中使用該元件。

您可以使用下列連結取得有關整合服務的詳細資訊︰

下一步

開始建立您的第一個資料流程、邏輯應用程式工作流程或函式應用程式。 選取下列任何連結︰