何時選擇 Azure Functions 來執行您的商務邏輯

已完成

現在讓我們看看自行車租賃業務的另一個程序,並決定哪種技術最符合我們的需求。 我們將考慮程序和對象的技術層面,以及程序應該如何改善。

案例

目前,您的自行車技術人員會使用試算表,來記錄對每輛自行車進行修復及維護時所採取的動作。 需要備用零件時出現了問題,因為員工無法得知自行車何時需要維修或零件。 這個問題導致自行車出租給有磨損剎車墊、扁平輪胎和其他故障的客戶,這些故障可能會損害公司的品牌作為一家高品質的自行車租賃公司。

您希望建置可控制維護和修復程序的系統,並可讓每個人找到下列問題的答案。

  • 已對自行車進行了哪些作業?
  • 還有哪些作業需完成,才能再次將自行車租出去?
  • 目前有哪些自行車可出租?
  • 目前有哪些自行車無法出租?
  • 針對每輛不可出租的自行車:
    • 為什麼我們不能出租它?
    • 是否正在等候任何零件?是哪些零件?
    • 什麼時候才能重新開放出租?

您想要將此系統與最後一個單位的自行車預約及出租程序整合。 在這種情況下,當商店員工搜尋可用的自行車時,他們只會尋找目前可出租的自行車。 您的經理要求您開發此專案。

商務程序

您希望確保兩個園區的自行車技術人員遵循下列工作流程來維護出租後的自行車:

Decision flow diagram detailing the logic for the Bike maintenance workflow.

詳細資料如下︰

  1. 客戶在任何地點歸還自行車。 自行車維護程序即會啟動。
  2. 技術人員將自行車標示為不可出租。
  3. 技術人員進行完整檢查,包括輪胎、煞車、傳動鏈條和車燈。
  4. 是否需要新的零件?
    1. 需要新的零件,但沒有庫存。
      1. 技術人員訂購新的零件
      2. 零件到達
    2. 調整新的組件
  5. 技術人員完成最後的變更。
  6. 技術人員將自行車標示為可供租用。

選擇 技術

若要實作業務程序並整合自行車位置資料庫,我們要考慮下列的技術集合。

  • Microsoft Power Automate
  • Azure Logic 應用程式
  • Azure Functions
  • Azure Service Apps WebJobs

在上個案例中,這些技術的任何一種都可以用來建置工作流程。 不過,有兩個問題會決定最佳的選擇。

設計優先或程式碼優先?

只使用 Logic Apps 或 Power Automate 實作此工作流程相當困難。 雖然我們尚未聽說太多的低階詳細資料,但此程序顯然需要存取庫存系統,並向第三方組件公司下單。 這是新的商務邏輯,不需要考慮設計優先方法。 我們可以將解決方案封裝在自訂的連接器中,與使用 Logic Apps 或 Power Automate 建立的其他工作流程整合在一起。 身為開發人員,您有最大的彈性可從程式碼優先方法處理此案例,那就動手吧!

Azure Functions 或 Azure Apps Service WebJobs?

我們必須在下列兩項技術中擇一。

  • Azure Functions
  • Azure App Service WebJobs

下列因素會影響您的選擇:

  • 成本:使用 WebJobs,您需支付裝載作業的整個 VM 或 App Service 方案。 Azure Functions 可以在取用方案上執行,因此您只能在函式執行時付費。 由於此程式只會在傳回自行車時開始,因此我們可以藉由選取 Azure Functions 來節省成本。
  • 整合:您想要整合維護工作流程和您在上個單位中建立的自行車預約租用程序邏輯應用程式。 雖然您可以從邏輯應用程式呼叫 WebJob,但 Logic Apps 和 Functions 之間的整合更緊密。 例如,您可以從 Logic Apps 視覺化設計工具更輕鬆地控制對函式的呼叫。

基於這些理由,我們會選取 Azure Function 以管理您的自行車維護業務程序。