共用方式為


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

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

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

注意

如果您要尋找 Azure Functions 與其他 Azure 計算選項之間的更一般比較,請參閱下列文章:

如需 Azure 中自動化服務選項的摘要和比較,請參閱 選擇 Azure 中的自動化服務。

比較 Azure Logic Apps 和 Microsoft Power Automate

這些服務都是 設計工具優先 的整合平臺,您可以在其中建置和執行自動化工作流程。 這兩個平臺都與各種軟體即服務 (SaaS) 和企業應用程式整合。 兩者都提供類似的工作流程設計工具,雖然 其連接器共用一些重疊,但每個平臺也提供自己的唯一連接器。

Power Automate 可讓商務使用者、辦公室工作者和公民開發人員建置簡單的整合,而不需要與 IT 或開發人員合作,或撰寫程式代碼。 其中一個範例可能是 SharePoint 文件庫的核准工作流程。 Azure Logic Apps 支援從小到無程式代碼案例到更進階、可編碼且複雜的工作流程等整合。 範例包括需要與 Azure DevOps 進行企業級互動的 B2B 程式或案例。 商務工作流程也可以隨著時間從簡單成長到完成。

若要協助您判斷是否要使用 Azure Logic Apps 或 Power Automate 進行特定整合,請參閱 功能比較數據表

比較 Azure Functions 與 Azure Logic Apps

這些 Azure 服務可讓您建置和執行無伺服器工作負載。 Azure Functions 是無伺服器計算服務,而 Azure Logic Apps 則是無伺服器工作流程整合平臺。 這兩者都可以建立複雜的協調流程。 協調流程是一組函 式,稱為 Azure Logic Apps 中的動作 ,您可以執行以完成複雜的工作。 例如處理命令批次,您可以平行執行許多函式執行個體、等待執行個體完成,然後執行函式來計算彙總結果。

對於 Azure Functions,您需藉由撰寫程式碼及使用 Durable Functions 延伸模組來開發協調流程。 針對 Azure Logic Apps,您可以使用可視化設計工具或編輯 Azure Resource Manager 範本來建立協調流程。

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

長期函式 Azure Logic 應用程式
開發 程式碼優先 (命令式) Designer First (宣告式)
連線性 - 十幾個內建系結類型
- 撰寫自訂繫結的程式碼
- 具有觸發程式和動作的 1,400+ 預建連接器
- 適用於 B2B 案例的企業整合套件
- 自訂連接器
動作 每個活動都是 Azure 函式、撰寫活動函式的程式碼 具有觸發程式和動作的 1,400+ 預建連接器
監視 Azure Application Insights - Azure 入口網站
- Azure 監視器記錄
- 適用於雲端的 Microsoft Defender
- Azure 應用程式 適用於標準工作流程的深入解析
- 標準工作流程的健康情況檢查

如需詳細資訊,請參閱 監視 Azure Logic Apps 中的工作流程。
管理 - REST API
- Visual Studio
- Azure 入口網站
- Visual Studio Code
- REST API
- PowerShell
- Azure CLI (標準工作流程)
- Azure CLI (取用工作流程)
執行內容 可以在本機或雲端中執行 可以在 Azure、在本機 Visual Studio Code 或部分連線的環境中執行。 如需詳細資訊,請參閱 什麼是 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 over WebJobs 與 WebJobs SDK。

Power Automate、Logic Apps、Functions 和 WebJobs 一起

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

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

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

如需整合服務的詳細資訊,請參閱下列文章:

下一步

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