Microsoft AZ-204: Azure API Management — 學習指南
屬於 Microsoft Azure Developer Associate AZ-204 — 學習指南. 使用經過驗證的解答練習: Microsoft 考試中心, 或參加限時模擬考試: ExamRoll.io.
總覽
Azure API Management (APIM) 為多樣化的後端服務提供了一個統一的 façade,它結合了高效能的閘道、可設定的原則引擎、開發人員上線流程以及完整的管理平面。它能在 REST、SOAP 和 GraphQL 後端之間實現一致的安全性、節流、轉換、可觀察性及生命週期控制。APIM 既是處理流量的執行階段閘道,也是一個由組態驅動的系統,您可以透過 Azure 入口網站、ARM/Bicep/CLI 或 CI/CD 進行管理。要大規模建構穩健、安全的 API,深入了解請求管線、原則功能、版本控制/修訂、訂用帳戶模型以及各層級的特性是至關重要的。
架構、層級與核心元件
閘道是資料平面。它負責終止用戶端連線、以確定的順序套用原則、將請求路由到後端並傳回回應。它支援內建快取、JWT 驗證、雙向 TLS 以及線速的內容轉換。閘道可以是由 Microsoft 按區域託管,也可以是自我託管(容器化),以便更靠近地端或邊緣工作負載執行,同時保持集中管理。閘道會公開追蹤和指標,並與 Application Insights 整合以進行分散式遙測。
開發人員入口網站是面向消費者的體驗,用於服務探索、文件查閱和訂用帳戶管理。它能呈現 OpenAPI/GraphQL 文件、提供互動式的「試用」主控台、在瀏覽器中處理 OAuth 2.0 流程,並支援自訂品牌和身分識別提供者。開發人員可在此自助服務產品訂用帳戶並輪替金鑰。
管理平面是組態和治理的介面。它儲存 API、操作、原則、產品、使用者/群組、後端、憑證和診斷設定。您可以透過 Azure 入口網站、ARM/Bicep/CLI/PowerShell、Management REST API 以及以 Git 為基礎的組態同步來存取它。此平面負責協調部署、版本控制、修訂和 RBAC。
APIM 的層級決定了其規模、功能和網路能力:
- Consumption (消費) 層級是無伺服器的,按呼叫次數計費。它會自動擴展,非常適合流量突增/低輸送量的場景,並支援大多數核心原則。它不包含內建的回應快取,也缺乏進階網路和多區域功能。
- Developer (開發人員) 層級適用於非生產環境。它提供幾乎完整的功能,但沒有 SLA,也沒有生產規模的輸送量。
- Basic (基本) 和 Standard (標準) 層級是專用的單一區域生產層級,具有可預測的輸送量、向外延展單位和內建的回應快取。它們適用於許多不需要多區域或進階網路的企業工作負載。
- Premium (進階) 層級增加了多區域部署、進階網路(包括 VNet 整合)、更高的擴展性、在支援區域中的可用性區域,以及自我託管閘道的授權。對於全球性、任務關鍵型的部署和私有網路,應選擇 Premium 層級。
原則與請求管線
APIM 原則是宣告式陳述,它們會依嚴格順序在四個區段中執行:inbound (傳入)、backend (後端)、outbound (傳出) 和 on-error (錯誤處理)。
inbound 原則在請求轉發到後端之前執行。典型的任務包括要求或驗證訂用帳戶金鑰、驗證 JWT (強制執行簽發者、受眾、簽章)、檢查用戶端 IP、套用速率限制和配額、正規化標頭、重寫 URI 以及轉換酬載。您可以根據條件將請求路由到不同的後端,並為後續階段設定變數。
backend 區段用來設定和修改對上游服務的呼叫。使用此區段來選擇後端實體、附加用戶端憑證 (基本驗證、用戶端憑證,或透過受控識別為受 Azure AD 保護的後端取得的權杖)、設定逾時、啟用重試以及套用斷路模式。與後端的雙向 TLS 是在此處透過關聯一個閘道將出示的用戶端憑證來設定的。
outbound 原則在收到後端回應後執行。它們通常執行回應轉換 (例如,JSON 轉 XML 或反之)、標頭重寫、資料塑形、遮罩內部細節以及回應快取。這裡也是套用內容協商轉換或正規化狀態碼的地方。
on-error 原則在任何先前區段 (包括後端呼叫) 發生例外時執行。使用此區段將後端錯誤對應到標準化的 API 錯誤格式、設定適當的狀態碼、編輯敏感訊息、新增關聯 ID 或提供備援回應。
常見的原則模式:
- 速率限制 (Rate limiting) 可控制突發輸送量並保護後端。
rate-limit-by-key使用訂用帳戶金鑰、JWT 宣告或 IP 等金鑰,對每個身分強制執行節流。對於較長的時間範圍,可與quota-by-key結合使用,以限制每日或每月的用量上限。 - IP 篩選 (IP filtering) 使用
ip-filter根據用戶端 IP 或 CIDR 範圍來封鎖或允許流量,通常放置在inbound區段的早期位置,以最小化成本和風險。 - JWT 驗證 (JWT validation) 使用
validate-jwt來強制執行 OpenID Connect 參數。設定 OpenID 組態 URL 或簽發者、定義可接受的受眾/範圍、選擇必要的宣告,並調整時脈誤差和權杖生命週期檢查。對於不允許匿名呼叫的所有操作,透過要求有效的權杖來拒絕匿名存取。 - 轉換 (Transformation) 包括
rewrite-uri、set-header、set-query-parameter、set-body和find-and-replace。使用xml-to-json或json-to-xml來橋接不匹配的用戶端/後端格式,而無需更改程式碼。 - 快取 (Caching) 利用
cache-lookup和cache-store來快取整個回應,其快取金鑰可以包含路徑、查詢、標頭和 JWT 宣告。使用cache-lookup-value/cache-store-value在原則內進行鍵/值快取,例如快取權杖。請注意,內建的回應快取功能在 Consumption 層級中不可用。
← 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.
通過考試 →