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

注意

基本標準和企業方案將從 2025 年 3 月中旬開始淘汰,並停用 3 年。 建議您轉換至 Azure Container Apps。 如需詳細資訊,請參閱 Azure Spring Apps 淘汰公告

標準 耗用量和專用 方案將從 2024 年 9 月 30 日起淘汰,並在六個月後完成關閉。 建議您轉換至 Azure Container Apps。 如需詳細資訊,請參閱 將 Azure Spring Apps 標準取用和專用方案遷移至 Azure Container Apps

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

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

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

必要條件

設定單一登入 (SSO)

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

注意

僅支援 OpenID Connect 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 Connect 用戶端識別碼
clientSecret Yes IdP 所提供的 OpenID Connect 客戶端密碼
範圍 (scope) Yes 要包含在 JWT 身分識別權杖中的範圍清單。 此清單應以識別提供者允許的範圍為基礎

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

注意

如果您設定錯誤的 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 入口網站的狀態。

下一步