共用方式為


Azure API 管理中的 API 閘道

適用於:所有 API 管理 層

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

相關資訊:

閘道的角色

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

具體而言,閘道:

附註

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

受控和自我裝載

API 管理同時提供託管和自託管閘道。

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

    附註

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

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

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

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

功能比較:受控與自行托管閘道器

下表比較下列 APIM 閘道中可用的功能:

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

附註

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

基礎結構

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

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

後端 API

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

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

政策

受控和自我託管閘道支援政策定義中所有可用的政策,但有下列例外。 如需每個原則的詳細數據,請參閱原則參考。

功能支援 傳統 V2 耗用 自我裝載1 工作區
Dapr 整合 (部分機器翻譯) ✔️
GraphQL 解析器GraphQL 驗證 ✔️ ✔️ ✔️
取得授權內容 ✔️ ✔️ ✔️
使用受控識別進行驗證 ✔️ ✔️ ✔️ ✔️
Azure OpenAI 和 LLM 語意快取 ✔️ ✔️ ✔️
配額和頻率限制 ✔️ ✔️ ✔️ 2 ✔️3 ✔️

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

監視

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

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

1 v2 層支援以 Azure 監視器為基礎的分析。
2 閘道會使用 Azure Application Insight 的內建記憶體緩衝區,且不會提供傳遞保證。
3 自我裝載閘道目前不會將資源記錄 (診斷記錄) 傳送到 Azure 監視器。 請選擇性地傳送計量至 Azure 監視器,或在本機設定並保存記錄,自我裝載閘道也部署於此。

驗證和授權

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

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

閘道輸送量和規模調整

重要

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

受控閘道

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

重要

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

  • 經典層級

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

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

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

自行架設閘道

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

工作區閘道

透過在工作區閘道中新增和移除縮放單位來調整容量。

深入了解: