探索 API 閘道
您的解決方案可能包含數個前端和後端服務。 在此案例中,用戶端如何知道要呼叫哪些端點? 引進新服務或重構現有服務時,會發生什麼事? 服務如何處理 SSL 終止、驗證和其他考量?
API 管理閘道(也稱為資料平面或執行階段)是負責代理 API 請求、套用策略及收集遙測資料的服務元件。
API 閘道位於客戶端和服務之間。 其可作為反向 Proxy,將要求從用戶端路由傳送至服務。 它也可能執行各種跨領域工作,例如驗證、SSL 終止和速率限制。 如果您未部署閘道,客戶端必須將要求直接傳送至後端服務。 不過,將服務直接公開給用戶端有一些潛在問題:
- 這可能會導致複雜的用戶端程序代碼。 客戶端必須追蹤多個端點,並以復原的方式處理失敗。
- 它會建立用戶端與後端之間的結合。 客戶端必須知道個別服務如何分解。 這使得維護用戶端更難,也更難重構服務。
- 單一作業可能需要呼叫多個服務。
- 每個公開服務都必須處理驗證、SSL 和用戶端速率限制等疑慮。
- 服務必須公開用戶端友好的通訊協定,例如 HTTP 或 WebSocket。 這會限制通訊協議的選擇。
- 具有公用端點的服務是潛在的受攻擊面,而且必須強化。
閘道可藉由將客戶端與服務分離來協助解決這些問題。
受控和自我裝載
API 管理同時提供管理式和自行裝設閘道:
受控 - 受控閘道是針對 Azure 中,每個服務層級中的每個 API 管理執行個體部署的預設閘道元件。 使用受控網關時,所有 API 流量都會流經 Azure,不論後端實作 API 的裝載位置為何。
自我裝載 - 自我裝載閘道是預設受控網關的選擇性容器化版本。 它對於需要在裝載 API 後端的相同環境中執行 Azure 閘道的混合式和多重雲端案例非常有用。 自我裝載閘道可讓具有混合式 IT 基礎結構的客戶,從 Azure 中的單一 API 管理服務管理裝載於內部部署和跨雲端的 API。