本文說明如何使用 Azure 入口網站,將 Service Fabric 服務設定為自訂 API 後端。 為了示範目的,本文會示範如何將基本無狀態 ASP.NET Core Reliable Service 設定為 Service Fabric 後端。
如需瞭解背景,請參閱 API 管理中的後端。
必要條件
在執行 Windows 做為自訂後端的 Service Fabric 叢集中,設定範例服務的必要條件:
Windows 開發環境:安裝 Visual Studio 和 Azure 開發、 ASP.NET 和 Web 開發,以及 .NET Core 跨平台開發 工作負載。 然後設定 .NET 開發環境。
Service Fabric 叢集:請參閱 教學課程:將執行 Windows 的 Service Fabric 叢集部署至 Azure 虛擬網路。 您可以使用現有的 X.509 憑證建立叢集,或出於測試目的建立新的自我簽署憑證。 叢集會在虛擬網路中建立。
範例 Service Fabric 應用程式:建立 Web API 應用程式並部署至 Service Fabric 叢集,如 整合 Azure 中的 API 管理與 Service Fabric 中所述。
這些步驟使用預設的 Web API 專案範本來建立一個基本的無狀態「ASP.NET Core 可靠服務」。 稍後,您會透過 Azure API 管理公開此服務的 HTTP 端點。
記下應用程式名稱,例如
fabric:/myApplication/myService。API 管理 執行個體: 進階 或 開發人員 層級中的現有或新的 API 管理 執行個體,且與 Service Fabric 叢集位於相同的區域中。 如果您需要,請建立 API 管理執行個體。
虛擬網路:將 API 管理 執行個體新增至您為 Service Fabric 叢集建立的虛擬網路。 API 管理需要虛擬網路中的專用子網路。
如需啟用 API 管理執行個體虛擬網路連線的步驟,請參閱如何搭配虛擬網路使用 Azure API 管理。
建立後端 - 入口網站
將 Service Fabric 叢集憑證新增至 API 管理
Service Fabric 叢集憑證會儲存和管理在與叢集相關聯的 Azure 金鑰保存庫中。 將此憑證新增至您的 API 管理執行個體作為用戶端憑證。
如需將憑證新增至 API 管理執行個體的步驟,請參閱如何在 Azure API 管理中使用用戶端憑證驗證來保護後端服務。
注意
建議您藉由參考金鑰保存庫憑證,將憑證新增至 API 管理。
加入 Service Fabric 後端
在 Azure 入口網站中,瀏覽至您的 API 管理執行個體。
在 API 底下,選取 後端>+ 建立新後端。
輸入後端名稱和選用說明。
在 [類型] 中,選取 [Service Fabric]。
在 [執行時間 URL] 中,輸入 API 管理將轉送要求 Service Fabric 後端服務的名稱。 範例:
fabric:/myApplication/myService。在 [分割區解析重試次數上限] 中,輸入介於 0 到 10 之間的數字。
輸入 Service Fabric 叢集的管理端點。 此端點是連接埠
19080上的叢集 URL,例如https://mysfcluster.eastus.cloudapp.azure.com:19080。在 [用戶端憑證] 中,選取您在上一節中新增至 API 管理執行個體 Service Fabric 叢集憑證。
在 [管理端點授權方法] 中,輸入 Service Fabric 叢集管理服務用於 TLS 通訊憑證的指紋或伺服器 X509 名稱。
啟用 [驗證憑證鏈結] 和 [驗證憑證名稱設定]。
在 [授權認證] 中,視需要提供認證,以連線到 Service Fabric 中設定的後端服務。 在此案例中使用的範例應用程式,不需要授權認證。
選取 建立。
使用後端
若要使用自訂後端,請使用 set-backend-service 原則加以參考。 此原則會將傳入 API 要求的預設後端服務基底 URL 轉換為指定的後端,在此案例中為 Service Fabric 後端。
此 set-backend-service 原則對於現有 API 很有用,可將傳入要求轉換成與 API 設定中所指定後端不同的後端。 為了示範目的,請建立測試 API,並將原則設定為將 API 要求導向至 Service Fabric 後端。
建立 API
請依照手動新增 API 中的步驟來建立空白 API。
在 API 設定中,將 Web 服務 URL 保留空白。
新增 API URL 尾碼,例如網狀架構。
將 GET 作業新增至 API
如部署 Service Fabric 後端服務所示,部署在 Service Fabric 叢集上的範例 ASP.NET Core 服務支援 URL 路徑 /api/values 上的單一 HTTP GET 作業。
該路徑的預設回應是兩個字串的 JSON 陣列:
["value1", "value2"]
若要測試 API 管理與叢集的整合,請將對應的 GET 作業新增至路徑 /api/values 上的 API:
選取您在上一個步驟中建立的 API。
選取 [+ 新增作業]。
在 [前端] 視窗中,輸入下列值,然後選取 [儲存]。
設定 值 顯示名稱 測試後端 URL GET URL /api/values
設定 set-backend-service 原則
將原則 set-backend-service 新增至測試 API。
在 [設計] 索引標籤上的 [輸入處理] 區段中,選取程式碼編輯器 (</>) 圖示。
將游標放在 <inbound> 元素內部
新增
set-service-backend原則聲明。在
backend-id中,以您 Service Fabric 後端的名稱取代。sf-resolve-condition是重新解析服務位置並重新傳送要求的條件。 設定後端時已設定重試次數。 例如:<set-backend-service backend-id="mysfbackend" sf-resolve-condition="@(context.LastError?.Reason == "BackendConnectionFailure")"/>
選取儲存。
注意
如果 Service Fabric 叢集中的一或多個節點關閉或遭移除,API 管理 不會收到自動通知,並繼續將流量傳送至這些節點。 若要處理這些情況,請設定類似下列的解決條件:sf-resolve-condition="@((int)context.Response.StatusCode != 200 || context.LastError?.Reason == "BackendConnectionFailure" || context.LastError?.Reason == "Timeout")"
測試後端 API
在 [測試] 索引標籤上,選取您在上一節中建立的 GET 作業。
請選取傳送。
正確設定時,HTTP 回應會顯示 HTTP 成功碼,並顯示從後端 Service Fabric 服務傳回的 JSON。