Microsoft AZ-104: Azure App Service 與 PaaS 計算 — 學習指南

屬於 Microsoft Azure Administrator Associate AZ-104 — 學習指南. 使用經過驗證的解答練習: Microsoft 考試中心, 或參加限時模擬考試: ExamRoll.io.

總覽

Azure 的 PaaS 運算產品組合結合了全託管的 Web/App 託管服務、無伺服器函式、工作流程自動化、隨選容器與容器協調服務。作為一名管理員,成功的關鍵在於了解每項服務的界線、它們如何進行網路連線與驗證,以及如何可靠地部署與擴展。本節涵蓋 App Service (方案、部署位置、網路與內建驗證)、Azure Functions 與 Logic Apps (方案、觸發程序、連接器)、Azure Container Instances 與 AKS (排程、擴展、維運工具),以及隔離的 App Service Environment。

App Service 與 Functions 運算基礎

App Service 方案決定了 Web Apps、API Apps 與在專用方案上執行的 Function Apps 的運算資源集區。各層級有不同的功能與擴展模型:

擴展分為向上擴展 (變更定價層/VM 大小) 與向外擴展 (變更執行個體數量)。自動擴展需要 Standard 或更高層級,並由 Azure Monitor 規則 (CPU、透過 App Service Metrics 取得的記憶體,或自訂計量) 驅動。擴展操作是針對每個 App Service 方案進行,並會影響方案內的所有應用程式。

部署位置在同一個方案中提供即時的應用程式執行個體,用以預備變更。部署位置存在於 Standard 及更高層級,Standard 支援較少的位置,而 Premium/Isolated 則支援更多。交換 (Swap) 操作透過交換位置的內容與組態來協調零停機的升級,同時會遵循位置設定 (會保留在位置上的「黏性」應用程式設定與連線字串)。「交換並預覽」會在完成前預熱目標位置並評估其健康狀況。「生產環境中測試」會將一定比例的生產流量路由到一個或多個位置;路由對每個用戶端都是黏性的,以在測試期間維持工作階段同質性。

App Service 網路提供受控的輸出與輸入連線能力:

內建驗證/授權 (「Easy Auth」) 在您的應用程式前端加上一個託管的驗證處理器,無需修改程式碼即可卸載權杖驗證的工作。支援的提供者包括 Microsoft Entra ID (Azure AD)、Microsoft Account、Google、Facebook、Twitter 與通用的 OpenID Connect。您可以強制所有請求都需登入,或將請求傳遞給應用程式處理;也可以設定允許的對象,並限制到特定的租用戶。選用的權杖存放區會快取提供者的權杖,並透過 /.auth/me 端點與請求標頭公開宣告 (claims)。結合系統指派的受控識別,可以安全地呼叫下游的 Azure 服務。

Azure Functions 提供事件驅動的運算,橫跨三種託管模型:

App Service 方案與 Consumption 模型的成本與擴展行為有實質上的差異。App Service 方案根據永遠在線的執行個體的大小與數量收費,並依照方案規則進行擴展。Functions 的 Consumption 模型僅針對執行時間與記憶體收費,並具備基於並行性的自動擴展與縮減至零的功能。Premium 則介於兩者之間,結合了保留的暖機容量與突發擴展能力。

容器與 Kubernetes

Azure Container Instances (ACI) 提供依需求、以秒計費的容器,無需管理虛擬機器或協調器。其部署單位是容器群組 (container group):一或多個排程在同一主機上的容器,共享 IP、連接埠、磁碟區與生命週期。您可以為每個容器定義 CPU/記憶體、公開連接埠,並掛載如 Azure Files、secrets 和 emptyDir 等磁碟區。環境變數可以是純文字或安全的 (會從日誌/中繼資料介面中排除)。重新啟動原則控制生命週期:Always (長期執行服務的預設值)、OnFailure (適用於應在非零結束時重試的作業),以及 Never (適用於您想在不重新啟動的情況下檢查結束狀態的「執行到完成」任務)。網路方面支援公用 IP、可透過 VNet 注入到委派子網路的私有 IP,以及用於公用端點的 DNS 名稱標籤。

Azure Kubernetes Service (AKS) 是一個受控的 Kubernetes 控制平面,其節點集區 (node pools) 是以 Virtual Machine Scale Sets 的形式佈建。節點集區區分了系統工作負載 (kube-system 元件) 和使用者工作負載,支援多種 VM 大小,並且可以執行 Linux 和 Windows (Windows 至少需要一個 Linux 系統集區)。集區可以被加上污點 (taint) 以控制排程。升級是按集區進行協調的,而 maxPods、可用性區域和暫時性 OS 磁碟則在集區建立時設定。叢集自動擴展器 (cluster autoscaler) 與 Kubernetes 排程整合,當有待處理的 pod 無法排程或節點使用率過低時,會在最小/最大範圍內修改節點數量;它會遵循 Pod 中斷預算 (Pod Disruption Budgets),且只在安全的情況下才會縮減。水平 Pod 自動擴展器 (Horizontal Pod Autoscaler) 則透過根據指標擴展 Deployment 中的複本數量來輔助此功能。

kubectl 叢集管理基礎:

網路外掛程式 (Azure CNI 或 kubenet)、身分識別 (受控識別 vs. 服務主體) 以及 RBAC/Entra ID 整合,共同決定了 pod IP 的分配、叢集驗證與授權。請確保叢集身分識別擁有對負載平衡器、受控磁碟和節點資源群組的權限。

整合、網路與安全性

Logic Apps 提供一個受控的工作流程引擎,內建數百個連接至 SaaS 和 Azure 服務的連接器。一個工作流程包含一個啟動執行的觸發程序 (trigger) 和執行各步驟的動作 (actions)。觸發程序包括 HTTP 要求、週期性 (Recurrence)、Service Bus 訊息、Event Grid 事件、儲存體事件,以及許多 SaaS 事件 (例如,在 Dynamics 365 中建立一筆記錄時)。動作包括控制結構 (條件、迴圈、切換)、資料作業 (撰寫、剖析 JSON、變數),以及連接器操作 (傳送電子郵件、將訊息加入佇列、呼叫 API)。它與 Azure 服務的整合非常深入:

App Service 環境 (App Service Environment, ASE) 實作了 App Service 的隔離 (Isolated) 層。ASE 部署在您的虛擬網路中,提供具備網路控制能力的單一租用戶、專用的運算和儲存體戳記。外部 ASE 會公開公用的輸入端點;而內部負載平衡器 (ILB) ASE 則只發布一個私有 VIP,用於嚴格的私密存取。ASE 中的應用程式使用隔離 (Isolated/Isolated v2) 定價層。您需要支付環境的戳記費用 (stamp fee) 以及每個執行個體背景工作角色的成本。當合規性、網路隔離或擴展需求超出多租用戶 App Service 的能力時,就會選擇 ASE。透過 ASE v3,部署和網路設定被簡化了,但其核心價值主張不變:以您的 VNet 為邊界,提供專用、可私下定址的 App Service。

跨這些服務的存取治理依賴 Azure RBAC 進行資源操作、受控識別 (managed identities) 進行服務對服務的驗證,以及在身分識別平面上的條件式存取 (Conditional Access)。對於 App Service 的輸入控制,可視需求結合私人端點 (Private Endpoints) 或 ILB ASE,並搭配存取限制和啟用 WAF 的前端 (例如 Application Gateway 或 Azure Front Door)。對於輸出控制,則使用 VNet 整合搭配 NSG、路由表和用於資料服務的私人端點。

部署與擴展作業

要對 App Service 進行可靠的發布,可使用部署位置在交換前驗證健康狀態並暖機快取。將每個環境不同的組態標示為「位置設定」,這樣它在交換期間就不會跟著移動(例如,連線字串、功能旗標)。使用交換預覽來執行健康狀態探查或應用程式特定的暖機端點;若不健康,就中止交換。在 Canary 部署期間,啟用流量路由,將一小部分具黏性的百分比流量導向預備位置,然後再逐步增加。特定於位置的應用程式設定可以安全地切換 Beta 功能。

App Service Plan 的自動擴展是在方案資源上設定的,使用設定檔(基於時間的最小/最大/預設值)和規則(帶有擴展步驟和冷卻時間的計量閾值)。結合 CPU 與自訂計量(例如佇列長度)以實現更精確的擴展。對於 Functions,Consumption(消費)方案會自動擴展;監控並行性並設定 host.json 以調整每個觸發程序的行為(例如 Service Bus 的批次大小和預先擷取)。Premium 方案會擴展預先暖機的執行個體和高載執行個體;將最小執行個體數量與延遲目標對齊。

在容器中,ACI 的重新啟動原則應反映其意圖:批次作業使用 Never 或 OnFailure 以避免無限迴圈;服務則使用 Always。使用環境變數進行組態,並使用 Azure Key Vault 存放祕密,透過 Managed Identity 和啟動程式碼注入,或在適當情況下將祕密掛載為磁碟區。在 AKS 中,啟用叢集自動擴展器,為每個節點集區設定合理的最小/最大範圍,並為關鍵的 Deployments 設定 HPA。為預留空間編列預算,並設定 Pod Disruption Budgets 以在升級和縮減期間保護可用性。在廣泛推出叢集或集區升級之前,先在 Canary 節點集區中驗證升級。

實務問題情境

Fabrikam, Inc. 營運一個客戶入口網站和背景處理服務。他們必須現代化至 PaaS、強制對資料存放區進行私有網路存取、支援藍綠部署,並在不管理 VM 的情況下執行夜間的容器化 ETL 作業。

  1. 將入口網站託管於具有部署位置的 App Service Premium
  1. 強制私有傳入流量並控制傳出流量
  1. 使用 Azure Functions Premium 實作背景處理
  1. 使用 Logic Apps Standard 來協調跨服務工作流程
  1. 在 Azure Container Instances 中執行夜間 ETL
  1. 使用 AKS 為容器化的微服務做準備

Azure 儲存體 · 所有領域 · Azure 資料庫與資料服務

練習這些題目 → · 在 ExamRoll.io 上限時練習 →

Pass the whole exam — not just this question

You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.

通過考試 →

瀏覽 Microsoft →

Related guides

一站式存取

一份訂閱。所有考試。

每個方案都可無限存取答案搜尋、練習測驗、AI 解釋和完整的資源庫 — 支援 20 多種語言。

每月
24.87
Just €0.83/day
包含所有內容:
  • 無限答案搜尋
  • 無限練習測驗
  • AI 驅動的解釋
  • 完整資源庫
  • 20 多種語言
  • 每週內容更新
  • 獎勵與推薦
  • 優先支援
開始免費試用

無需信用卡*

最佳價值
12 個月
179.87
Just €0.49/daySave 40%
包含所有內容:
  • 無限答案搜尋
  • 無限練習測驗
  • AI 驅動的解釋
  • 完整資源庫
  • 20 多種語言
  • 每週內容更新
  • 獎勵與推薦
  • 優先支援
開始免費試用

無需信用卡*

✓ 包含免費方案 · ✓ 隨時取消 · ✓ 所有方案解鎖完整產品