Azure API 管理中的 API 閘道

適用於:所有 API 管理 層

本文針對 API 管理「閘道」元件的角色和功能提供相關資訊,並比較您可以部署的閘道。

相關資訊:

閘道的角色

API 管理「閘道」 (也稱為「資料平面」或「執行階段」) 是負責通過 Proxy 處理 API 要求、套用原則及收集遙測的服務元件。

具體而言,閘道可以:

注意

所有對 APIM 閘道的要求 (包括原則設定拒絕的要求) 都會計入設定的速率限制、配額和計費限制 (如果已在服務層級中套用)。

受控和自我裝載

API 管理同時提供受控和自我裝載閘道:

  • 受控 - 受控閘道是針對 Azure 中,每個服務層級中的每個 API 管理執行個體部署的預設閘道元件。 使用受控閘道時,所有 API 流量都會流經 Azure,不論實作 API 的後端裝載位置為何。

    注意

    由於基礎服務架構的差異,不同 API 管理 服務層級中提供的閘道在功能方面有一些差異。 如需詳細資訊,請參閱功能比較:受控與自我裝載閘道一節。

  • 自我裝載 - 自我裝載閘道是選擇性且容器化的預設受控閘道 版本,可在選取的服務層級中使用。 它對於需要在裝載 API 後端的相同環境中執行 Azure 閘道的混合式和多重雲端案例非常有用。 自我裝載閘道可讓使用混合式 IT 基礎結構的客戶,透過 Azure 中的單一 API 管理服務,管理裝載於內部部署與跨雲端裝載的 API。

    • 自我裝載的閘道會封裝為 Linux 型 Docker 容器,而且通常會部署到 Kubernetes,包括 Azure Kubernetes Service已啟用 Azure Arc 的 Kubernetes

    • 每個自我裝載閘道都會與雲端式API 管理執行個體中的閘道資源相關聯,而自我裝載閘道會從中接收設定更新並傳達狀態。

重要

對 Azure APIM 自我裝載閘道第 0 版和第 1 版容器映像的支援,以及其對應的設定 API v1,將於 2023 年 10 月 1 日結束。 使用我們的移轉指南,搭配設定 API v2 使用自我裝載閘道 v2.0.0 或更高版本。 在我們的淘汰文件中深入瞭解

功能比較:受控與自我裝載閘道

下表比較下列 API 管理 閘道中可用的功能:

  • 傳統 - 開發人員、基本、標準和 進階版 服務層級中提供的受控網關(先前已分組為專用層)
  • V2 - 基本 v2 和標準 v2 層中可用的受控網關
  • 用 - 取用層中可用的受控閘道
  • 自我裝載 - 選擇性的自我裝載網關,可在選取的服務層級中使用

注意

  • 只有特定的服務層級或自我裝載閘道的特定部署環境,才支援受控和自我裝載閘道的某些功能。
  • 如需目前支援的自我裝載閘道功能,確定您已升級至最新主要版本的自我裝載閘道容器映像 (部分機器翻譯)。
  • 另請參閱自我裝載閘道的限制

基礎結構

功能支援 傳統 V2 耗用 自我裝載
自訂網域 ✔️ ✔️ ✔️ ✔️
內建快取 (部分機器翻譯) ✔️ ✔️
外部 Redis 相容快取 ✔️ ✔️ ✔️ ✔️
虛擬網路插入 開發人員、進階 ✔️1,2
輸入私人端點 開發人員、基本、標準、進階
輸出虛擬網路整合 Standard V2
可用性區域 進階 ✔️1
多區域部署 (部分機器翻譯) 進階 ✔️1
憑證驗證的CA 根憑證 ✔️ ✔️ ✔️3
憑證驗證的CA 根憑證 ✔️ ✔️ ✔️3
受控網域憑證 開發人員、基本、標準、進階 ✔️
TLS 設定 (部分機器翻譯) ✔️ ✔️ ✔️ ✔️
HTTP/2 (用戶端到閘道) ✔️4 ✔️4 ✔️
HTTP/2 (閘道到後端) ✔️
使用適用於 API 的 Defender (部分機器翻譯) 的 API 威脅偵測 ✔️ ✔️

1 取決於閘道的部署方式,但這是客戶的責任。
2 連線到自我裝載閘道 v2 設定端點 (部分機器翻譯) 需要端點主機名稱的 DNS 解析。
3 系統會針對每個閘道個別管理自我裝載閘道的 CA 根憑證
4 必須啟用用戶端通訊協定。

後端 API

功能支援 傳統 V2 耗用 自我裝載
OpenAPI 規格 ✔️ ✔️ ✔️ ✔️
WSDL 規格 ✔️ ✔️ ✔️ ✔️
WADL 規格 ✔️ ✔️ ✔️ ✔️
邏輯應用程式 ✔️ ✔️ ✔️ ✔️
應用程式服務 ✔️ ✔️ ✔️ ✔️
函數應用程式 ✔️ ✔️ ✔️ ✔️
容器應用程式 ✔️ ✔️ ✔️ ✔️
Service Fabric 開發人員、進階
傳遞 GraphQL ✔️ ✔️ ✔️ ✔️
綜合 GraphQL ✔️ ✔️ ✔️1 ✔️1
傳遞 WebSocket ✔️ ✔️ ✔️
傳遞 gRPC (預覽) ✔️
OData (預覽) ✔️ ✔️ ✔️ ✔️
傳遞 GraphQL ✔️ ✔️ ✔️ ✔️
Azure OpenAI ✔️ ✔️ ✔️ ✔️
後端 斷路器 (預覽) ✔️ ✔️ ✔️
負載平衡後端集區 (預覽) ✔️ ✔️ ✔️ ✔️

1 不支援 Synthetic GraphQL 訂用帳戶 (預覽版)。

原則

受控和自我裝載閘道支援原則定義中所有可用的原則,但有下列例外狀況。

功能支援 傳統 V2 耗用 自我裝載1
Dapr 整合 (部分機器翻譯) ✔️
GraphQL 解析器 (部分機器翻譯) 和 GraphQL 驗證 (部分機器翻譯) ✔️ ✔️ ✔️
取得授權內容 ✔️ ✔️ ✔️
配額和速率限制 ✔️ ✔️2 ✔️3 ✔️4

1 在原則執行期間,略過自我裝載閘道不支援的已設定原則。
2 v2 層中無法使用依密鑰原則的配額。
2 依金鑰的速率限制和依金鑰的配額原則無法在使用層中使用。
3 自我裝載閘道中的速率限制計數可以設定為在本機同步 (在跨叢集節點的閘道執行個體之間),例如,透過適用於 Kubernetes 的 Helm 圖表部署,或使用 Azure 入口網站部署範本。 不過,速率限制計數不會與 APIM 執行個體中設定的其他閘道資源 (包括雲端中的受控閘道) 同步。 深入了解

監視

如需監視選項的詳細資訊,請參閱Azure API 管理中的可檢視性

功能支援 傳統 V2 耗用 自我裝載
API 分析 ✔️ ✔️1
Application Insights ✔️ ✔️ ✔️ ✔️
透過事件中樞記錄 ✔️ ✔️ ✔️ ✔️
Azure 監視器中的計量 (部分機器翻譯) ✔️ ✔️ ✔️ ✔️
OpenTelemetry 收集器 ✔️
要求 Azure 監視器和 Log Analytics 中的記錄 (部分機器翻譯) ✔️ ✔️ 2
本機計量和記錄 ✔️
要求追蹤 (部分機器翻譯) ✔️ 3 ✔️ ✔️

1 v2 層支援以 Azure 監視器為基礎的分析。
2 自我裝載閘道目前不會將資源記錄(診斷記錄)傳送至 Azure 監視器。 請選擇性地傳送計量至 Azure 監視器,或在本機設定並保存記錄,自我裝載閘道也部署於此。
3 v2 層目前無法使用追蹤。

驗證與授權

受控和自我裝載閘道支援所有可用的 API 驗證和授權選項 ,但有下列例外狀況。

功能支援 傳統 V2 耗用 自我裝載
認證管理員 ✔️ ✔️ ✔️

閘道輸送量和規模調整

重要

輸送量會受到同時用戶端連線的數目和速率、已設定原則的種類和數目、承載大小、後端 API 效能及其他因素的影響。 自我裝載閘道輸送量也取決於閘道執行時所在主機的計算容量 (CPU 和記憶體)。 使用預期的生產條件執行閘道負載測試,以準確判斷預期的輸送量。

受控閘道

如需API 管理服務層級中預估的閘道輸送量上限,請參閱API 管理定價

重要

輸送量圖表僅做為提供資訊之用,請勿依賴該圖表進行容量和預算規劃。 如需詳細資訊,請參閱API 管理定價

  • 傳統層

    • 藉由新增和移除縮放單位來調整閘道容量,或升級服務層級。 (開發人員層級中無法調整規模。)
    • 在 [基本]、[標準] 和 [進階版 層] 中,選擇性地設定 Azure 監視器自動調整
    • 在進階層級中,選擇性地跨多個區域新增並散發閘道容量。
  • v2 層

    • 藉由新增和移除縮放單位來調整閘道容量,或升級服務層級。
  • 使用層

    • 使用層中的 API 管理執行個體會根據流量自動調整。

自我裝載閘道

  • Kubernetes 之類的環境中,新增多個閘道複本以處理預期的使用量。
  • 選擇性地設定自動調整,以符合流量需求。