Azure 雲原生
敏捷開發與無伺服器:Functions、Logic Apps 與 App Service 的分工
敏捷開發與無伺服器:Functions、Logic Apps 與 App Service 的分工
我看過太多次同一個場景:一支排程程式,用 Functions 寫得很痛苦,因為它其實只是在串五個 SaaS 的 API。也看過反過來的,用流程設計工具硬拼出一套資料轉換,維護的人看到那張圖就想離職。
選錯不是因為不懂技術,是因為沒有先把問題問清楚。這篇要把 Functions、Logic Apps 與 App Service 三者的分工講明白,順便交代 2026 年這三邊各自的變化。
你將學到什麼
先問問題再挑服務
程式碼為先選 Functions,編排為先選 Logic Apps,長期在線的 Web 服務選 App Service。
託管方案要選對
Functions 的伸縮、冷啟動與網路能力由託管方案決定,Flex Consumption 是目前建議的無伺服器選項。
流程也是交付物
Logic Apps 把流程變成一份可以被讀、被版控的定義,還帶著大量現成連接器與 B2B 能力。
至少送達一次
訊息可能重複送達,冪等性不是進階題,是接上任何事件系統的第一天就要做的事。
這三個服務最常見的誤用,不是選錯服務,而是根本沒先把「我要解決的是什麼形狀的問題」問出來。
先問問題,再挑服務
把三者放在一起比功能,很容易越比越亂,因為它們的功能確實有重疊。比較有效的做法是倒過來,先問你手上這件事長什麼樣子。
官方文件裡有一句話很適合當口訣:Azure Functions 是程式碼為先,Azure Logic Apps 是編排為先。這句話能解掉大概八成的選型爭論。
Azure Functions:事件驅動的運算單位
Functions 的核心概念只有兩個:觸發程序決定什麼時候跑,繫結決定資料從哪來、往哪去。你寫的那段程式碼被夾在中間,不必自己寫連線與輪詢。
{
"bindings": [
{ "type": "queueTrigger", "direction": "in", "name": "msg" },
{ "type": "blob", "direction": "out", "name": "result" }
]
}
上面只是結構示意,重點在形狀:一個進來的觸發、若干個進出的繫結。真正會影響你系統行為的,其實是託管方案。
託管方案決定了一切
同一份程式碼,放在不同的託管方案上,伸縮方式、冷啟動、逾時上限與網路能力都不一樣。官方文件在 2026 年 8 月的版本裡列出這幾個選項。
| 託管方案 | 狀態 | 適合的情境 |
|---|---|---|
| Flex Consumption | 正式推出 | 新的無伺服器應用;要虛擬網路連線、要快速的事件驅動伸縮、想用預先配置的執行個體壓低冷啟動 |
| Premium | 正式推出 | 幾乎持續在跑的應用;要預熱執行個體、更大的 CPU 與記憶體、自訂 Linux 映像 |
| Dedicated | 正式推出 | 已經有閒置的 App Service 方案;要完全可預測的帳單或手動伸縮;需要 App Service 環境的隔離 |
| Container Apps | 正式推出 | 要自己控制容器映像;要跟其他微服務住在同一個運算環境;需要 GPU 運算 |
| Consumption(舊版) | Windows 正式推出,Linux 已退場 | 只剩相依於 Windows 的既有情境;新應用官方建議改用 Flex Consumption |
依 Microsoft Learn 的託管方案比較頁(2026 年 8 月查閱):Linux 上的 Consumption 託管將於 2028 年 9 月 30 日退場,且不再新增功能與語言版本;還在 v3 執行階段、跑在 Linux Consumption 上的應用會在 2026 年 9 月 30 日之後停止運作。退場時程以官方公告為準。
Flex Consumption 值得單獨提一句:它的伸縮決策是以函式為單位計算的,同一個應用裡不同觸發類型會落在各自的執行個體上,而不是整包一起長大。
官方文件(2026 年 8 月查閱)寫明,不論你把逾時設定調成多少,HTTP 觸發的函式回應請求最多只有 230 秒,這來自負載平衡器的閒置逾時。要跑更久的工作,就得改成先回應、再用非同步模式追蹤進度。
Logic Apps:把流程從程式碼裡搬出來
Logic Apps 的價值不在「不用寫程式」,而在「流程本身變成一份可以被讀、被審查、被版控的定義」。一年後接手的人看得懂那張圖,這件事的價值很難被高估。
它的另一個現實優勢是連接器。官方文件寫的是超過一千四百個現成連接器,涵蓋 Azure 服務、Office 365、資料庫、SAP 與 IBM MQ 這類企業系統,以及 FTP 與 SFTP 檔案分享。
- 內建連接器:直接跑在 Logic Apps 執行階段上,吞吐量與效能較好,也用來控制流程結構與處理資料。
- 受管連接器:由微軟託管、跑在 Azure 上的服務包裝層,多數使用前要先建立連線並驗證身分。
- 企業整合能力:整合帳戶可存放交易夥伴、合約、結構描述與對應,支援 AS2、EDIFACT、X12、RosettaNet 等 B2B 協定。
- 寫程式的空間還在:Standard 的工作流程裡可以直接跑 JavaScript、.NET 程式碼、C# 指令碼與 PowerShell 指令碼。
官方文件明講:Azure Logic Apps 保證訊息至少送達一次,訊息不會遺失,但偶爾會重複。只要下游動作有副作用,就要自己用唯一識別碼做去重,重複收到當作沒事發生。
2026 年的 Logic Apps 多了一個身分
這兩年 Logic Apps 明顯往代理程式的方向長。除了原本的自動化流程,它現在也被拿來當作 AI 代理程式的編排層與工具層。
- Agent loop:讓工作流程的動作變成代理程式可以呼叫的工具,先在 Standard 正式推出,之後也擴到 Consumption。
- 對話式代理程式:以通道的形式讓代理程式透過入口網站或自訂聊天用戶端與人互動。
- Logic Apps MCP 伺服器:把既有的工作流程直接開成 MCP 相容的工具,讓代理程式可以探索與呼叫,於 2026 年 Build 宣布正式推出。
- Logic Apps Automation:把工作流程、代理程式、知識服務與模型存取打包成受管的 SaaS 體驗,於 2026 年 Build 以公開預覽推出。
以上依 Microsoft Learn 官方文件與 2026 年 Build 的公開報導整理,查閱時間為 2026 年 8 月。這一塊的名稱、可用範圍與 SKU 劃分正在快速調整,尤其標示預覽的項目,導入前請以官方公告為準。另外要留意一件事:官方文件提到工作流程中的代理程式使用的模型可能來自任何區域,資料落地的保證與一般動作不同。
App Service:現代化的 Web 託管
App Service 的定位單純:託管以 HTTP 為基礎的 Web 應用,基礎設施維護、安全修補、伸縮與診斷工具都內建。它不是拿來跑事件處理的,是拿來讓一個服務長期在線的。
架構上要記住一個邊界:應用被歸在 App Service 方案這個邏輯運算邊界裡,同一個方案內的所有應用共用配置到的運算、記憶體與儲存空間。
官方架構指南的建議是一個方案對應一個工作負載,避免吵鬧鄰居問題。想要硬體層級的隔離,就要往專用層或隔離層走,後者是專屬虛擬機加上專屬虛擬網路。
2026 年這一側的關鍵字是現代化與代理程式化。Premium v4 方案建立在較新一代的虛擬機硬體上,Isolated v4 於 2026 年 Build 在 App Service 環境 v3 上宣布正式推出。
- Easy AI:讓既有的 Web 應用不必重新架構就能變成代理程式可用的端點,2026 年 Build 時標示為預覽。
- 內建 MCP 支援:把 App Service 上的應用直接開成 MCP 端點,同場宣布,標示為預覽。
- App Service Managed Instance:Build 2026 時仍為預覽,之後官方另有正式推出的公告,導入前請確認最新狀態。
- 部署與工具改善:更明確的部署錯誤訊息、更快的 Python 部署管線、FastAPI 自動偵測等,宣布為正式推出。
三者何時該用誰
| 你的情況 | 先考慮 | 理由 |
|---|---|---|
| 有事件、要跑一段自己寫的邏輯 | Functions | 觸發與繫結省掉大量樣板程式,工作短小且可水平展開 |
| 要串多個 SaaS 或企業系統 | Logic Apps | 連接器省掉整合工,流程圖本身就是文件與交付物 |
| 有 B2B 訊息交換需求 | Logic Apps | 整合帳戶與 EDI 協定支援是內建能力,自己寫成本極高 |
| 一個網站或 API 要長期在線 | App Service | 託管式 Web 平台,修補、伸縮、診斷與部署槽都內建 |
| 要自己控制容器映像 | Functions on Container Apps | 保留 Functions 程式設計模型,同時取得容器與微服務環境 |
| 多步流程要有狀態、能重試 | Logic Apps 或持久化工作流程 | 把順序、重試與補償從例外處理裡拿出來,變成一份定義 |
最後補一句實務經驗:這三者在同一個方案裡共存是常態,不是設計失誤。常見的組合是 Logic Apps 負責編排與對外整合,中間需要算東西的那幾步呼叫 Functions,對使用者的介面留在 App Service。
真正該避免的不是混用,而是拿錯工具解錯問題:用程式碼硬拼流程,或用流程圖硬拼演算法。
延伸學習
HE201|Harness Engineering System Design(6 小時)
六小時的實作課:從 Blueprint 走到可以跑的規格,再用 No-code、n8n 低程式碼與程式碼三條路各做一次同一個 harness,最後處理可靠度——重試、錯誤處理、人工覆核。7 章 54 課,含常見坑與排錯、Capstone 實作,附學員講義 PDF。
NT$ 5,999
ChatGPT 很強,但真正讓你下班的是 Google
六小時完整實錄。從「AI 很厲害,為什麼你還是每天加班」這個問題出發,把 Google Workspace 當成真正的工作平台重新設計一次流程 ── Sheets 的資料結構、Drive 與 Docs 的文件流、Gmail 與 Calendar 的通知系統,再用 Apps Script 讓它自己跑起來,最後收斂成一張屬於你自己的 AI 工作能力地圖。
NT$ 4,599

