本文比較了以下Microsoft云服務:
Microsoft Power Automate(以前稱Microsoft Flow)
Azure邏輯應用
Azure Functions
Azure應用服務WebJobs
所有這些服務都可以解決集成問題并自動化業(yè)務流程。它們都可以定義輸入、操作、條件和輸出??梢栽谌粘贪才呕蛴|發(fā)器中運行其中一個。每種服務都有其獨特的優(yōu)點,本文將介紹這些差異。
若要查找Azure Functions與其他Azure計算選項之間的更一般比較,請參閱選擇Azure計算服務的標準和為微服務選擇Azure計算選項。
比較Microsoft Power Automate和Azure邏輯應用
Power Automate和邏輯應用都是可以創(chuàng)建工作流的“設計器優(yōu)先”集成服務。這兩種服務都與各種SaaS和企業(yè)應用程序相集成。
Power Automate基于邏輯應用而構建。它們有相同的工作流設計器和相同的連接器。
借助Power Automate,任何辦公室工作人員都可以執(zhí)行簡單的集成(例如,對SharePoint文檔庫的審批過程),無需求助開發(fā)人員或IT部門。邏輯應用還可以實現(xiàn)需要企業(yè)級DevOps和安全做法的高級集成(例如B2B流程)。對于業(yè)務工作流,其典型特征就是復雜性會隨時間增長而增加。相應地,可以先從流開始,然后根據需要將其轉換到邏輯應用。
下表可幫助你確定Power Automate或邏輯應用是否最適合某一特定的集成:
比較Azure Functions和Azure邏輯應用
函數和邏輯應用是用于啟用無服務器工作負荷的Azure服務。Azure Functions是一種無服務器計算服務,而Azure邏輯應用提供無服務器工作流。兩者都可以創(chuàng)建復雜的業(yè)務流程。業(yè)務流程是函數或步驟(在邏輯應用中稱為“操作”)的集合,將執(zhí)行這些函數或步驟來完成復雜任務。例如,若要處理一批訂單,可以并行執(zhí)行某個函數的許多實例,等待所有實例完成,然后執(zhí)行某個函數來計算聚合結果。
對于Azure Functions,通過編寫代碼并使用Durable Functions擴展來開發(fā)業(yè)務流程。對于邏輯應用,你通過使用GUI或通過編輯配置文件來創(chuàng)建業(yè)務流程。
在構建業(yè)務流程、從邏輯應用中調用函數以及從函數中調用邏輯應用時,可以混合使用各種服務??梢愿鶕展δ芑蚰愕膫€人喜好選擇如何構建每個業(yè)務流程。下表列出了這些服務之間的一些主要區(qū)別:
比較函數和WebJobs
與Azure Functions一樣,包含WebJobs SDK的Azure應用服務是一項代碼優(yōu)先的集成服務,專為開發(fā)人員設計。二者都是在Azure應用服務上構建的,支持源代碼管理集成、身份驗證以及使用Application Insights集成進行監(jiān)視等功能。
WebJobs和WebJobs SDK
可以使用應用服務的WebJobs功能,在應用服務Web應用上下文中運行腳本或代碼。WebJobs SDK是一個為WebJobs設計的框架,可以簡化為響應Azure服務中的事件而編寫的代碼。例如,若要響應在Azure存儲中創(chuàng)建映像Blob這一事件,可以創(chuàng)建一個縮略圖。WebJobs SDK以.NET控制臺應用程序的方式運行,可以部署到WebJob。
WebJobs和WebJobs SDK在一起使用時效果最佳,但也可在沒有WebJobs SDK的情況下使用WebJobs,反之亦然。WebJob可以運行任何在應用服務沙盒中運行的程序或腳本。WebJobs SDK控制臺應用程序可以在運行控制臺應用程序的任何位置運行,例如本地服務器。
比較表
Azure Functions是在WebJobs SDK上構建的,因此共享許多相同的事件觸發(fā)器以及到其他Azure服務的連接。在選擇Azure Functions還是選擇帶WebJobs SDK的WebJobs時,請考慮以下因素:
總結
與Azure應用服務WebJobs相比,Azure Functions可以進一步提高開發(fā)人員的工作效率。它還提供更多的編程語言、開發(fā)環(huán)境、Azure服務集成和價格選項。大多數情況下,它是最佳選擇。
下面兩種情況最適合選擇WebJobs:
需要對偵聽事件的代碼(JobHost對象)進行更多的控制。若要在host.json文件中自定義JobHost行為,則Functions提供的方式有限。有時候,需要執(zhí)行的操作無法在JSON文件中通過字符串來指定。例如,只有WebJobs SDK允許配置Azure存儲的自定義重試策略。
你已經有需要為其運行代碼片段的應用服務應用,且需要在同一Azure DevOps環(huán)境中同時管理它們。
對于其他需要運行代碼片段來集成Azure或第三方服務的情況,請選擇Azure Functions而不是帶WebJobs SDK的WebJobs。
Power Automate、邏輯應用、Functions和WebJobs一起
并非只能選擇其中的一種服務。這些服務可相互集成,也可與外部服務配合工作。
流可以調用邏輯應用。邏輯應用可以調用函數,而函數也可以調用邏輯應用。請參閱相關文檔,例如,創(chuàng)建與Azure邏輯應用集成的函數。
隨著時間的推移,Power Automate、邏輯應用和Functions之間的集成會不斷改進??梢栽谀撤罩袠嫿ㄒ恍╉?,并將其用于其他服務。