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

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

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

如果您要了解 Azure Functions 和其他 Azure 計算選項之間較常見的比較,請參閱選擇 Azure 計算服務的準則選擇適用於微服務的 Azure 計算選項

比較 Microsoft Power Automate 和 Azure Logic Apps

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

Power Automate 是以 Logic Apps 為基礎所建置。 它們共用相同的工作流程設計工具和相同的連接器

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

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

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

比較 Azure Functions 和 Azure Logic Apps

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

對於 Azure Functions,您可以透過撰寫程式碼和使用 Durable Functions 擴充功能來開發協調流程。 對於 Logic apps,您可以使用 GUI 或編輯組態檔來建立協調流程。

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

長期函式 Logic Apps
開發 Code First (命令式) Designer First (宣告式)
連線能力 約有十幾個內建繫結類型、撰寫自訂繫結的程式碼 連接器的大型集合適用於 B2B 的企業整合套件案例建置自訂連接器
動作 每個活動都是 Azure 函式;撰寫活動函式的程式碼 現成動作的大型集合
監視 Azure Application Insights Azure 入口網站Azure 監視器記錄
管理 REST APIVisual Studio Azure 入口網站REST APIPowerShellVisual Studio
執行內容 可以在本機或雲端中執行 只可在雲端中執行

比較 Functions 和 Webjob

如同 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 一起

您不必只選擇其中一項服務。 這些服務可彼此整合,如同與外部服務搭配使用時一樣。

流程可呼叫邏輯應用程式。 邏輯應用程式可呼叫函式,而函式可呼叫邏輯應用程式。 如需範例,可參閱建立與 Azure Logic Apps 整合的函式

Power Automate、Logic Apps 和 Functions 之間的整合會隨時間持續改進。 您可以在某項服務中建置某物並用於其他服務。

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

後續步驟

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