使用適用於 VMware Tanzu 的 API 入口網站

注意

Azure Spring Apps 是 Azure Spring Cloud 服務的新名稱。 雖然服務有新的名稱,但是您暫時還是會在某些位置看到舊的名稱。我們正在致力更新螢幕擷取畫面、影片和圖表等資產。

本文適用於:❌ 基本/標準✔️企業

本文說明如何使用適用於 VMware Tanzu 的 API 入口網站搭配 Azure Spring Apps 企業版方案。

API 入口網站 是其中一個商業 VMware Tanzu 元件。 API 入口網站支援從 適用於 VMware Tanzu 的 Spring Cloud Gateway 檢視 API 定義,以及從瀏覽器測試特定 API 路由。 它也支援透過組態啟用單一登錄 (SSO) 驗證。

必要條件

  • 已啟用 API 入口網站的已布建 Azure Spring Apps 企業版方案實例。 如需詳細資訊,請參閱 快速入門:使用企業方案建置和部署應用程式至 Azure Spring Apps。
  • Tanzu 的 Spring Cloud Gateway 會在布建期間啟用,並已設定對應的 API 元數據。

設定單一登入 (SSO)

API 入口網站支援使用單一登錄 (SSO) 搭配支援 OpenID 連線 Discovery 通訊協定的 OpenID 識別提供者 (IdP) 進行驗證和授權。

注意

只支援支援 OpenID 連線 Discovery 通訊協定的授權伺服器。 請務必設定外部授權伺服器,以允許重新導向回到 API 入口網站。 請參閱授權伺服器的檔,並將 新增 https://<api-portal-external-url>/login/oauth2/code/sso 至允許的重新導向 URI 清單。

屬性 是必要的嗎? 描述
issuerUri Yes 應用程式判斷提示為其簽發者標識碼的 URI。 例如,如果提供的issuer-uri是 “https://example.com",則會對 ”;https://example.com/.well-known/openid-configuration" 提出OpenID提供者組態要求。 結果必須是OpenID提供者組態回應。
clientId Yes 您的 IdP 所提供的 OpenID 連線 用戶端識別碼
clientSecret Yes 您的 IdP 所提供的 OpenID 連線 客戶端密碼
範圍 (scope) Yes 要包含在 JWT 識別令牌中的範圍清單。 此清單應以識別提供者允許的範圍為基礎

若要使用 Microsoft Entra ID 設定 SSO,請參閱 如何使用適用於 Spring Cloud Gateway 的 Microsoft Entra ID 和適用於 Tanzu 的 API 入口網站來設定單一登錄。

注意

如果您設定錯誤的 SSO 屬性,例如錯誤的密碼,您應該移除整個 SSO 屬性,然後重新新增正確的組態。

設定實例計數

使用下列步驟,使用 API 入口網站來設定實例計數:

  1. 流覽至您的服務實例,然後選取 [API 入口網站]。
  2. 選取 [ 向外延展]。
  3. 設定 實例計數 ,然後選取 [ 儲存]。

為 API 入口網站指派公用端點

使用下列步驟將公用端點指派給 API 入口網站:

  1. 選取 [API 入口網站]。
  2. 選取 [ 概觀 ] 以檢視配置給 API 入口網站的執行狀態和資源。
  3. 選取 [指派端點] 旁的 [],以指派公用端點。 URL 會在幾分鐘內產生。
  4. 儲存 URL 以供稍後使用。

設定 API 試用功能

API 入口網站可讓您集中檢視 API,並使用 API 試用功能加以試用。 默認會啟用 API 試用,此組態可協助您在整個 API 入口網站實例上將其關閉。 如需詳細資訊,請參閱 在 API 入口網站 中試用 API 一節。

使用下列步驟來啟用或停用 API 試用:

  1. 流覽至您的服務實例,然後選取 [API 入口網站]。
  2. 選取設定
  3. 選取或清除 [啟用 API 試用 ],然後選取 [ 儲存]。

在適用於 Tanzu 的 Spring Cloud Gateway 上使用 OpenAPI 規格設定 API 路由

本節說明如何在 API 入口網站中使用架構定義來檢視和試用 API。 使用下列步驟,在適用於 Tanzu 的 Spring Cloud Gateway 上使用 OpenAPI 規格 URL 來設定 API 路由。

  1. 在 Azure Spring Apps 中建立閘道將流量路由傳送至的應用程式。

  2. 產生 OpenAPI 定義,並取得 URI 來存取它。 接受下列兩個 URI 選項:

    • 第一個選項是使用可公開存取的端點,例如 URI https://petstore3.swagger.io/api/v3/openapi.json,其中包含 OpenAPI 規格。
    • 第二個選項是將 OpenAPI 定義放在 Azure Spring Apps 中應用程式的相對路徑,並以 格式 http://<app-name>/<relative-path-to-OpenAPI-spec>建構 URI。 您可以選擇之類的 SpringDocs 工具自動產生 OpenAPI 規格,因此 URI 可能類似 http://<app-name>/v3/api-docs
  3. 使用下列命令將公用端點指派給閘道以存取它。

    az spring gateway update --assign-endpoint
    
  4. 使用下列命令來設定 Tanzu 屬性的 Spring Cloud Gateway:

    az spring gateway update \
        --api-description "<api-description>" \
        --api-title "<api-title>" \
        --api-version "v0.1" \
        --server-url "<endpoint-in-the-previous-step>" \
        --allowed-origins "*"
    
  5. 設定應用程式的路由規則。

    若要建立規則以在 Spring Cloud Gateway for Tanzu 路由設定中存取應用程式,請將下列內容儲存至 sample.json 檔案。

    {
       "open_api": {
          "uri": "https://petstore3.swagger.io/api/v3/openapi.json"
       },
       "routes": [
          {
             "title": "Petstore",
             "description": "Route to application",
             "predicates": [
                "Path=/pet",
                "Method=PUT"
             ],
             "filters": [
                "StripPrefix=0"
             ]
          }
       ]
    }
    

    此值 open_api.uri 是上述第二個步驟中建構的公用端點或 URI。 您可以針對 OpenAPI 規格中定義的路徑新增述詞和篩選。

    使用下列命令,將規則套用至在第一個步驟中建立的應用程式:

    az spring gateway route-config create \
        --name sample \
        --app-name <app-name> \
        --routes-file sample.json
    
  6. 檢查已建立路由的回應。 您也可以在入口網站中檢視路由。

在 API 入口網站中檢視公開的 API

注意

在適用於 Tanzu 的 Spring Cloud Gateway 與 API 入口網站之間同步處理需要幾分鐘的時間。

endpoint URL選取 以移至 API 入口網站。 您會看到在適用於 Tanzu 的 Spring Cloud Gateway 中設定的所有路由。

顯示已設定路由的 API 入口網站螢幕快照。

在 API 入口網站中試用 API

使用下列步驟來試用 API:

  1. 選取您想要嘗試的 API。

  2. 選取 [EXECUTE],回應隨即出現。

    API 入口網站的螢幕快照,其中顯示已選取 [執行] 選項。

在建立服務之後啟用/停用 API 入口網站

您可以使用 Azure 入口網站 或 Azure CLI,在建立服務之後啟用和停用 API 入口網站。 停用 API 入口網站之前,您必須取消指派其端點。

使用下列步驟,使用 Azure 入口網站 來啟用或停用 API 入口網站:

  1. 流覽至您的服務資源,然後選取 [API 入口網站]。
  2. 選取 [管理]
  3. 選取或取消選取 [啟用 API 入口網站],然後選取 [ 儲存]。
  4. 您現在可以在 API 入口網站頁面上檢視 API 入口網站的狀態。

下一步