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