分享方式:


設定 VMware Spring Cloud 閘道

注意

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

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

本文向您展示如何使用 Azure Spring 應用程式 Enterprise 方案來設定 VMWare Spring Cloud 閘道。

VMware Spring Cloud Gateway 是以開放原始碼 Spring Cloud Gateway 專案為基礎的商業 VMware Tanzu 元件。 適用於 Tanzu 的 VMWare Spring Cloud 閘道會處理 API 開發小組的跨領域考量,例如單一登入 (SSO)、存取控制、速率限制、復原和安全性等。 您可以在為 API 開發選擇的程式設計語言中使用新式雲端原生模式,以加速 API 傳遞。

VMWare Spring Cloud 閘道執行個體會根據規則路由流量。 它支援縮減/擴充擴大/縮小,以符合動態流量負載。

VMware Spring Cloud Gateway 包含下列功能:

  • 動態路由設定與個別應用程式無關,無須重新編譯即可套用和變更
  • 用於將已授權 JSON Web 權杖 (JWT) 宣告傳輸至應用程式服務的商業 API 路由篩選
  • 用戶端憑證授權
  • 速率限制方法
  • 斷路器設定
  • 支援透過 HTTP 基本驗證認證存取應用程式服務

為了與適用於 VMWare Tanza 的 API 入口網站整合,VMWare Spring Cloud 閘道會在任何路由設定新增或變更之後自動產生 OpenAPI 第 3 版文件。 如需詳細資訊,請參閱使用適用於 VMWare Tanzu 的 API 入口網站

必要條件

啟用或停用 VMWare Spring Cloud 閘道

建立服務執行個體之後,您可以使用 Azure 入口網站或 Azure CLI 來啟用或停用 VMWare Spring Cloud 閘道。 停用 VMWare Spring Cloud 閘道之前,您必須先取消指派其端點,並移除所有路由設定。

依循下列步驟,使用 Azure 入口網站來啟用或停用 VMWare Spring Cloud 閘道:

  1. 移至您的服務資源,然後選取 [Spring Cloud 閘道]
  2. 選取 [管理]
  3. 選取或清除 [啟用 Spring Cloud 閘道] 核取方塊,然後選取 [儲存]

您現在可以在 [Spring Cloud 閘道] 頁面上檢視 Spring Cloud 閘道的狀態。

Azure 入口網站的螢幕擷取畫面,其中顯示 Spring Cloud 閘道頁面。

重新啟動 VMWare Spring Cloud 閘道

完成重新啟動的動作後,VMWare Spring Cloud 閘道執行個體會輪流重新啟動。

依循下列步驟,使用 Azure 入口網站來重新啟動 VMWare Spring Cloud 閘道:

  1. 移至您的服務資源,然後選取 [Spring Cloud 閘道]
  2. 選取重新啟動
  3. 選取 [確定] 以確認重新啟動。

顯示 Spring Cloud 閘道頁面的 Azure 入口網站螢幕擷取畫面,其中包含重新啟動閘道的確認訊息。

將公用端點指派給 VMWare Spring Cloud 閘道

本章節說明如何將公用端點指派給 VMWare Spring Cloud 閘道,並設定其屬性。

若要在 Azure 入口網站中指派端點,請使用下列步驟:

  1. 開啟您的 Azure Spring 應用程式執行個體。
  2. 在瀏覽窗格中選取 [Spring Cloud 閘道],然後選取 [概觀]
  3. 將 [指派端點] 設定為 [是]

幾分鐘後,URL 會顯示已設定的端點 URL。 儲存 URL 以供稍後使用。

Azure 入口網站的螢幕擷取畫面,顯示 Spring Cloud 閘道概觀頁面,其中包含指派端點的切換開關。

設定 VMware Spring Cloud 閘道中繼資料

VMWare Spring Cloud 閘道中繼資料會自動產生 OpenAPI 第 3 版文件。 您可以設定 VMware Spring Cloud 閘道中繼資料,以在 VMware Tanzu 的 API 入口網站中顯示路由群組。 如需詳細資訊,請參閱使用適用於 VMWare Tanzu 的 API 入口網站

下表描述可用中繼資料選項:

屬性 說明
title 描述 VMWare Spring Cloud 閘道執行個體上可用 API 內容的標題。 預設值是 Spring Cloud Gateway for K8S
description VMWare Spring Cloud 閘道執行個體上可用 API 的詳細描述。 預設值是 Generated OpenAPI 3 document that describes the API routes configured for '[Gateway instance name]' Spring Cloud Gateway instance deployed under '[namespace]' namespace.*.
documentation VMWare Spring Cloud 閘道執行個體上可用的 API 文件位置。
version 此 VMWare Spring Cloud 閘道執行個體上可用的 API 版本。 預設值是 unspecified
serverUrl VMWare Spring Cloud 閘道執行個體上存取 API 的基礎 URL。 如果您想要與 API 入口網站整合,此屬性為強制的。

您可以使用 Azure 入口網站或 Azure CLI 來編輯中繼資料屬性。

若要在 Azure 入口網站中編輯中繼資料,請使用下列步驟:

  1. 開啟您的 Azure Spring 應用程式執行個體。
  2. 在瀏覽窗格中選取 [Spring Cloud 閘道],然後選取 [設定]
  3. 指定針對 API 所列出之屬性的值。
  4. 選取 [儲存]。

Azure 入口網站的螢幕擷取畫面,其中顯示 [Spring Cloud 閘道設定] 索引標籤,且 [API] 區段醒目提示。

設定單一登入

VMWare Spring Cloud 閘道支援使用 OpenID 識別提供者透過單一登入 (SSO) 進行驗證和授權。 此提供者支援 OpenID Connect 探索通訊協定。 下表描述 SSO 屬性:

屬性 是必要的嗎? 描述
issuerUri Yes 判斷為其簽發者識別碼的 URI。 例如,如果 issuerUrihttps://example.com,則會對 https://example.com/.well-known/openid-configuration 發出 OpenID 提供者設定要求。 結果應是 OpenID 提供者設定回應。
clientId Yes 您的識別提供者提供的 OpenID Connect 用戶端識別碼。
clientSecret Yes 您的識別提供者提供的 OpenID Connect 用戶端密碼。
scope Yes 要包含在 JWT 身分識別權杖中的範圍清單。 此清單應以識別提供者所允許的範圍為基礎。

若要使用 Microsoft Entra ID 設定 SSO,請參閱使用 Spring Cloud 閘道和 API 入口網站的 Microsoft Entra ID 設定單一登錄

您可以使用 Azure 入口網站或 Azure CLI 來編輯 SSO 屬性。

若要在 Azure 入口網站中編輯 SSO 屬性,請使用下列步驟:

  1. 開啟您的 Azure Spring 應用程式執行個體。
  2. 在瀏覽窗格中選取 [Spring Cloud 閘道],然後選取 [設定]
  3. 指定針對 SSO 所列出之屬性的值。
  4. 選取 [儲存]。

Azure 入口網站的螢幕擷取畫面,其中顯示 [Spring Cloud 閘道設定] 索引標籤,且 [單一登入] 區段醒目提示。

VMWare Spring Cloud 閘道僅對支援 OpenID Connect 探索通訊協定的授權伺服器提供支援。 此外,請務必設定外部授權伺服器,以允許重新導向回閘道。 請參閱授權伺服器的文件,並將 https://<gateway-external-url>/login/oauth2/code/sso 新增至允許的重新導向 URI 清單。

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

設定 SSO 之後,請記得為 VMWare Spring Cloud 閘道路由設定 ssoEnabled: true

設定 SSO 登出

VMWare Spring Cloud 閘道服務執行個體會提供預設 API 端點,以登出目前的 SSO 工作階段。 此端點的路徑為 /scg-logout。 登出會產生下列其中一個結果,視您呼叫登出端點的方式而定:

  • 登出工作階段,並重新導向至識別提供者 (IdP) 登出。
  • 登出服務執行個體工作階段。

登出 IdP 和 SSO 工作階段

如果您將 GET 要求傳送至 /scg-logout 端點,端點會將 302 重新導向回應傳送至 IdP 登出 URL。 若要取得端點以將用戶傳回閘道服務執行個體上的路徑,請使用 /scg-logout 端點,將重新導向參數新增至 GET 要求。 例如,您可以使用 ${server-url}/scg-logout?redirect=/home

重新導向參數的值必須是 VMWare Spring Cloud 閘道服務執行個體上的有效路徑。 您無法重新導向至外部 URL。

下列步驟說明如何在微服務中實作函式的範例:

  1. 取得路由設定,以將登出要求路由傳送至您的應用程式。 如需範例,請參閱 GitHub 上 animal-rescue 存放庫中的路由設定。

  2. 將您需要的任何登出邏輯新增至應用程式。 最後,您需要對閘道的 /scg-logout 端點提出 GET 要求,如 animal-rescue 存放庫中 getActionButton 方法的 return 值所示。

只登出 SSO 工作階段

如果您使用 XMLHttpRequestGET 要求傳送至 /scg-logout 端點,則可以忍受 302 重新導向,而不會在回應處理常式中處理。 在此情況下,使用者只會登出 VMWare Spring Cloud 閘道服務執行個體上的 SSO 工作階段。 使用者仍然會有有效的 IdP 工作階段。 一般而言,如果使用者嘗試再次登入,系統會自動以 IdP 驗證將其傳回閘道。

您需要有路由設定,才能將登出要求路由傳送至您的應用程式,如下列範例所示。 此程式碼會建立僅限閘道的登出 SSO 工作階段。

const req = new XMLHttpRequest();
req.open("GET", "/scg-logout);
req.send();

設定 CORS

跨原始來源資源共用 (CORS) 允許從另一個網域 (不是提供第一個資源的網域) 要求網頁上的限制資源。 下表說明可用的 CORS 設定選項。

屬性 說明
allowedOrigins 允許來源發出跨網站要求
allowedOriginPatterns 允許來源模式發出跨網站要求
allowedMethods 允許跨網站要求的 HTTP 方法
allowedHeaders 跨網站要求中允許的標頭
maxAge 用戶端可以快取來自預檢要求回應的時間,以秒為單位
allowCredentials 跨網站要求是否支援使用者認證
exposedHeaders 要為跨網站要求公開的 HTTP 回應標頭

如果您想要與 API 入口網站整合,請確定您有正確的 CORS 設定。 如需詳細資訊,請參閱將公用端點指派給 VMWare Spring Cloud 閘道章節。

使用服務調整

您可以對 VMWare Spring Cloud 閘道執行個體自訂資源配置,包括 vCPU、記憶體和執行個體計數。

為確保高可用性,不建議使用單一複本。

下表描述預設資源使用狀況。

元件名稱 執行個體計數 每個執行個體的虛擬 CPU 每個執行個體的記憶體
VMware Spring Cloud 閘道 2 單核心 2 GiB
VMware Spring Cloud 閘道運算子 2 單核心 2 GiB

設定閘道與應用程式之間的 TLS

若要增強安全性,並協助保護敏感性資訊免於未經授權的合作對象攔截,您可以在 VMWare Spring Cloud 閘道與您的應用程式之間啟用傳輸層安全性 (TLS)。

設定 TLS 之前,您必須具備已啟用 TLS 的應用程式和 TLS 憑證。 若要準備 TLS 憑證,請從受信任的憑證授權單位 (CA) 產生憑證。 憑證會驗證伺服器的身分識別,並建立安全的連線。

在 Azure Spring 應用程式中執行已啟用 TLS 的應用程式之後,請將憑證上傳至 Azure Spring 應用程式。 如需詳細資訊,請參閱在 Azure Spring 應用程式的應用程式中使用 TLS/SSL 憑證匯入憑證章節。

將憑證更新至 Azure Spring 應用程式之後,您可以設定閘道的 TLS 憑證並啟用憑證驗證。 您可以在 Azure 入口網站中或使用 Azure CLI 來設定憑證。

使用下列步驟在 Azure 入口網站中設定憑證:

  1. 在 Azure Spring 應用程式執行個體中,選取瀏覽窗格上的 [Spring Cloud 閘道]
  2. 在 [Spring Cloud 閘道] 頁面上,選取 [憑證管理]
  3. 選取 [啟用憑證驗證]
  4. 在 [憑證] 中選取 TLS 憑證。
  5. 選取 [儲存]。

更新設定可能需要幾分鐘的時間。 設定完成後,您應該會收到通知。

準備路由設定

您必須在路由設定中將通訊協定指定為 HTTPS。 下列 JSON 物件會指示 VMWare Spring Cloud 閘道針對閘道與應用程式之間的所有流量使用 HTTPS 通訊協定。

  1. 使用下列內容建立名為 test-tls-route.json 的檔案:

    {
        "routes": [
          {
            "title": "Test TLS app",
            "predicates": [
              "Path=/path/to/your/app",
              "Method=GET"
            ]
          }
         ],
        "uri": "https://<app-custom-domain-name>"
    }
    
  2. 使用下列命令將規則套用至應用程式:

    az spring gateway route-config create \
        --resource-group <resource-group-name> \
        --service <Azure-Spring-Apps-instance-name> \
        --name test-tls-app \
        --routes-file test-tls-route.json
    

您現在可以測試應用程式是否透過閘道端點啟用了 TLS。 如需詳細資訊,請參閱使用 Spring Cloud 閘道設定路由章節。

輪換憑證

由於憑證過期,您必須使用下列步驟輪替 VMWare Spring Cloud 閘道中的憑證:

  1. 從受信任的 CA 產生新的憑證。
  2. 將憑證匯入 Azure Spring 應用程式。 如需詳細資訊,請參閱在 Azure Spring 應用程式的應用程式中使用 TLS/SSL 憑證匯入憑證章節。
  3. 使用 Azure 入口網站或 Azure CLI 同步處理憑證。

VMWare Spring Cloud 閘道會重新啟動,以確保閘道針對所有連線使用新的憑證。

使用下列步驟來同步處理憑證:

  1. 在 Azure Spring 應用程式執行個體中,選取瀏覽窗格上的 [Spring Cloud 閘道]
  2. 在 [Spring Cloud 閘道] 頁面上,選取 [重新啟動],然後確認作業。

設定自動調整設定

您可以為 VMWare Spring Cloud 閘道設定自動調整模式。

下列清單顯示自動調整需求管理可用的選項:

  • 手動調整選項會維持固定的執行個體計數。 您可以擴增到最多 10 個執行個體。 此值會變更 Spring Cloud 閘道個別執行中執行個體的數目。
  • 自訂自動調整選項可依據任何計量、依任何排程來調整規模。

在 Azure 入口網站中,選擇您想要調整的方式。 下列螢幕擷取畫面顯示自訂自動調整選項和模式設定:

Azure 入口網站的螢幕擷取畫面,其中顯示 [自訂自動調整] 選項醒目提示的 [自動調整設定] 頁面。

如需可用計量的詳細資訊,請參閱 Azure Spring 應用程式的計量使用者計量選項章節。

設定回應快取

回應快取設定可讓您定義 HTTP 回應快取,並可在全域或路由層級套用。

全域啟用回應快取

全域啟用回應快取之後,所有適用的路由都會自動啟用回應快取。

使用下列步驟全域啟用回應快取:

  1. 在 Azure Spring 應用程式執行個體中,選取瀏覽窗格上的 [Spring Cloud 閘道]
  2. 在 [Spring Cloud 閘道] 頁面上,選取 [設定]
  3. 在 [回應快取] 區段中,選取 [啟用回應快取],然後將 [範圍] 設定為 [執行個體]
  4. 為回應快取設定 [大小] 和 [存留時間]
  5. 選取 [儲存]。

使用下列步驟停用回應快取:

  1. 在 Azure Spring 應用程式執行個體中,選取瀏覽窗格上的 [Spring Cloud 閘道]
  2. 在 [Spring Cloud 閘道] 頁面上,選取 [設定]
  3. 在 [回應快取] 區段中,清除 [啟用回應快取]
  4. 選取 [儲存]。

在路由層級啟用回應快取

若要為任何路由啟用回應快取,請使用 LocalResponseCache 篩選。 下列範例示範如何在路由規則設定中使用 LocalResponseCache 篩選:

{
   "filters": [
      "<other-app-level-filter-of-route>",
   ],
   "routes": [
      {
        "predicates": [
            "Path=/api/**",
            "Method=GET"
         ],
         "filters": [
            "<other-filter-of-route>",
            "LocalResponseCache=3m, 1MB"
         ],
      }
   ]
}

如需詳細資訊,請參閱如何使用 VMWare Spring Cloud 閘道路由篩選搭配 Azure Spring 應用程式 Enterprise 方案LocalResponseCache 章節,以及 VMWare 文件中的 LocalResponseCache

您可以在 Spring Cloud 閘道層級設定這些參數,而不是個別為每個 LocalResponseCache 篩選設定 sizetimeToLive。 此選項可讓您使用 LocalResponseCache 篩選,無需一開始就指定這些值,同時保留稍後覆寫這些值的彈性。

使用下列步驟在路由層級啟用回應快取,並設定 sizetimeToLive

  1. 在 Azure Spring 應用程式執行個體中,選取瀏覽窗格上的 [Spring Cloud 閘道]
  2. 在 [Spring Cloud 閘道] 頁面上,選取 [設定]
  3. 在 [回應快取] 區段中,選取 [啟用回應快取],然後將 [範圍] 設定為 [路由]
  4. 為回應快取設定 [大小] 和 [存留時間]
  5. 選取 [儲存]。

使用下列步驟在路由層級停用回應快取,這會清除 sizetimeToLive

  1. 在 Azure Spring 應用程式執行個體中,選取瀏覽窗格上的 [Spring Cloud 閘道]
  2. 在 [Spring Cloud 閘道] 頁面上,選取 [設定]
  3. 在 [回應快取] 區段中,清除 [啟用回應快取]
  4. 選取 [儲存]。

下列範例示範當 sizetimeToLive 設定於 Spring Cloud 閘道層級時,如何使用 LocalResponseCache 篩選:

{
   "filters": [
      "<other-app-level-filter-of-route>",
   ],
   "routes": [
      {
        "predicates": [
            "Path=/api/path1/**",
            "Method=GET"
         ],
         "filters": [
            "<other-filter-of-route>",
            "LocalResponseCache"
         ],
      },
      {
        "predicates": [
            "Path=/api/path2/**",
            "Method=GET"
         ],
         "filters": [
            "<other-filter-of-route>",
            "LocalResponseCache=3m, 1MB"
         ],
      }
   ]
}

設定環境變數

Azure Spring 應用程式服務會管理和調整 VMWare Spring Cloud 閘道。 除了設定應用程式效能監視 (APM) 和記錄層級的使用案例之外,您通常不需要使用環境變數來設定 VMWare Spring Cloud 閘道。

如果您有無法透過本文所述的其他設定來完成的需求,您可以嘗試設定在一般應用程式屬性清單中顯示的環境變數。 將設定套用至實際執行環境之前,請務必先在測試環境中驗證。

若要在 Azure 入口網站中設定環境變數,請使用下列步驟:

  1. 在 Azure Spring 應用程式執行個體中,選取瀏覽窗格上的 [Spring Cloud 閘道],然後選取 [設定]
  2. 在 [屬性] 和 [祕密] 區段中填入環境變數的索引鍵/值組。 您可以在 [祕密] 區段中包括具有敏感性資訊的變數。
  3. 選取儲存以儲存變更。

更新環境變數之後,VMWare Spring Cloud 閘道會重新啟動。

設定應用程式效能監視

若要監視 VMWare Spring Cloud 閘道,您可以設定 APM。 下表列出 VMWare Spring Cloud 閘道所提供的五種 APM JAVA 代理程式,以及其必要的環境變數。

JAVA 代理程式 必要的環境變數
Application Insights APPLICATIONINSIGHTS_CONNECTION_STRING
Dynatrace DT_TENANT
DT_TENANTTOKEN
DT_CONNECTION_POINT
New Relic NEW_RELIC_LICENSE_KEY
NEW_RELIC_APP_NAME
AppDynamics APPDYNAMICS_AGENT_APPLICATION_NAME
APPDYNAMICS_AGENT_TIER_NAME
APPDYNAMICS_AGENT_NODE_NAME
APPDYNAMICS_AGENT_ACCOUNT_NAME
APPDYNAMICS_AGENT_ACCOUNT_ACCESS_KEY
APPDYNAMICS_CONTROLLER_HOST_NAME
APPDYNAMICS_CONTROLLER_SSL_ENABLED
APPDYNAMICS_CONTROLLER_PORT
彈性 APM ELASTIC_APM_SERVICE_NAME
ELASTIC_APM_APPLICATION_PACKAGES
ELASTIC_APM_SERVER_URL

如需其他支援的環境變數,請參閱下列來源:

若要在 VMWare Spring Cloud 閘道中啟用 APM 監視,您可以在服務執行個體層級上建立 APM 設定,並將其繫結至 Spring Cloud 閘道。 如此一來,您只需一次輕鬆地設定 APM,並將相同的 APM 繫結至 Spring Cloud 閘道和您的應用程式。

依循下列步驟,使用 Azure 入口網站來設定 APM:

  1. 使用 APM 名稱、類型和屬性,在服務執行個體層級上設定 APM。 如需詳細資訊,請參閱如何設定 APM 整合和 CA 憑證中的在服務執行個體層級上管理 APM (建議) 章節。

    Azure 入口網站的螢幕擷取畫面,其中顯示 Azure Spring 應用程式 APM 編輯器頁面。

  2. 在瀏覽窗格中選取 [Spring Cloud 閘道],然後選取 [APM]

  3. APM 參考名稱清單中選擇 APM 名稱。 此清單包含步驟 1 中設定的所有 APM 名稱。

  4. 選取 [儲存],將 APM 參考名稱繫結至 Spring Cloud 閘道。 您的閘道會重新啟動以啟用 APM 監視。

在 VMWare Spring Cloud 閘道中管理 APM (已被取代)

您可以使用 Azure 入口網站或 Azure CLI 在 VMWare Spring Cloud 閘道中設定 APM。 您也可以指定要使用的 APM JAVA 代理程式類型,以及其支援的對應 APM 環境變數。

依循下列步驟,使用 Azure 入口網站來設定 APM:

  1. 在 Azure Spring 應用程式執行個體中,選取瀏覽窗格上的 [Spring Cloud 閘道],然後選取 [設定]
  2. 選擇 APM 清單中的 APM 類型,以監視閘道。
  3. 在 [屬性] 和 [祕密] 區段中填入 APM 環境變數的索引鍵/值組。 您可以在 [祕密] 區段中放入具有敏感性資訊的變數。
  4. 選取儲存以儲存變更。

更新設定可能需要幾分鐘的時間。 設定完成後,您應該會收到通知。

注意

Azure Spring 應用程式會升級 APM 代理程式以及具有相同頻率的已部署應用程式,以保持 VMWare Spring Cloud 閘道與 Azure Spring 應用程式之間的代理程式相容性。

根據預設,Azure Spring 應用程式會將 APM JAVA 代理程式的記錄列印至 STDOUT。 這些記錄隨附於 VMWare Spring Cloud 閘道記錄中。 您可以檢查記錄中使用的 APM 代理程式版本。 您可以在 Log Analytics 中查詢這些記錄以進行疑難排解。

若要讓 APM 代理程式正確運作,請增加 VMWare Spring Cloud 閘道的 CPU 和記憶體。

設定記錄層級

您可以使用下列方式設定 VMWare Spring Cloud 閘道的記錄層級,以取得更多詳細資料或減少記錄:

  • 您可以將記錄層級設定為 TRACEDEBUGINFOWARNERROROFF。 VMWare Spring Cloud 閘道的預設記錄層級為 INFO
  • 您可以將記錄層級設定為 OFF 來關閉記錄。
  • 當記錄層級設定為 WARNERROROFF時,您可能需要在向 Azure Spring 應用程式小組要求支援時將其調整為 INFO。 此變更會導致重新啟動 VMWare Spring Cloud 閘道。
  • 當記錄層級設定為 TRACEDEBUG時,可能會影響 VMWare Spring Cloud 閘道的效能。 請在實際執行環境中嘗試避免這些設定。
  • 您可以設定適用於 root 記錄器或特定記錄器 (例如 io.pivotal.spring.cloud.gateway) 的記錄層級。

下列記錄器可能包含 TRACEDEBUG 層級寶貴的疑難排解資訊:

記錄器 描述
io.pivotal.spring.cloud.gateway 篩選和述詞,包括自訂延伸模組
org.springframework.cloud.gateway API 閘道
org.springframework.http.server.reactive HTTP 伺服器互動
org.springframework.web.reactive API 閘道反應式流程
org.springframework.boot.autoconfigure.web API 閘道自動設定
org.springframework.security.web 驗證與授權資訊
reactor.netty Reactor Netty

若要取得環境變數金鑰,請新增 logging.level. 前置詞,然後藉由設定環境 logging.level.{loggerName}={logLevel} 來設定記錄層級。 下列範例顯示 Azure 入口網站和 Azure CLI 的步驟。

若要在 Azure 入口網站中設定記錄層級,請使用下列步驟:

  1. 在 Azure Spring 應用程式執行個體中,選取瀏覽窗格上的 [Spring Cloud 閘道],然後選取 [設定]
  2. 在 [屬性] 和 [祕密] 區段中填入記錄層級環境變數的索引鍵/值組。 如果記錄層級在您的案例中是敏感性資訊,您可以使用 [祕密] 區段來包括它。
  3. 選取儲存以儲存變更。

Azure 入口網站的螢幕擷取畫面,其中顯示用來設定記錄層級的 Spring Cloud 閘道環境變數。

更新附加元件設定

附加元件設定功能可讓您使用 JSON 格式字串自訂 VMWare Spring Cloud 閘道的特定屬性。 當您需要設定未透過 REST API 公開的屬性時,此功能很有用。

附加元件設定是 JSON 物件,其具有代表所需設定的索引鍵/值組。 下列範例顯示 JSON 格式的結構:

{
    "<addon-key-name>": {
        "<addon-key-name>": "<addon-value>"
        ...
    },
    "<addon-key-name>": "<addon-value>",
    ...
}

下列清單顯示針對附加元件索引鍵名稱和實值型別的支援附加元件組態。 當我們升級 VMWare Spring Cloud 閘道版本時,此清單可能會變更。

  • SSO 設定:

    • 索引鍵名稱:sso

    • 實值型別:物件

    • 屬性:

      • RolesAttributeName (字串):指定包含與 SSO 工作階段相關聯之角色的屬性名稱。
      • InactiveSessionExpirationInMinutes (整數):指定非使用中 SSO 工作階段的逾期時間,以分鐘為單位。 0 的值表示工作階段永遠不會逾期。
    • 範例:

      {
          "sso": {
              "rolesAttributeName": "roles",
              "inactiveSessionExpirationInMinutes": 1
          }
      }
      
  • 中繼資料設定:

    • 索引鍵名稱:api

    • 實值型別:物件

    • 屬性

      • groupId (字串):VMWare Spring Cloud 閘道執行個體上可用之 API 群組的唯一識別碼。 值只能包含小寫字母和數字。
    • 範例:

      {
          "api": {
              "groupId": "id1"
          }
      }
      
  • Pod 設定

    • 索引鍵名稱:PodOverrides,用來指定預設 Pod 設定的覆寫。

    • 實值型別:物件

    • 屬性

      • Containers:此陣列包含 Pod 內個別容器的設定。 目前僅支援名為 gateway 的容器。
        • Name:指定容器的名稱。 容器應該命名為 gateway
        • LifecyclePreStop 是容器即將終止時執行的生命週期勾點。 此勾點可讓您在容器停止前執行任何必要的清除。
      • TerminationGracePeriodSeconds:指定 Kubernetes 強制終止 Pod 之前等候其正常終止的時間量。
    • 範例:

      {
          "PodOverrides": {
              "Containers": [
                  {
                      "Name": "gateway",
                      "Lifecycle": {
                          "PreStop": {
                              "Exec": {
                                  "Command": [
                                      "/bin/sh",
                                      "-c",
                                      "sleep 20"
                                  ]
                              }
                          }
                      }
                  }
              ],
              "TerminationGracePeriodSeconds": 120
          }
      }
      

      當包含此容器的 Pod 正在終止時,PreStop 勾點會執行命令 /bin/sh -c 'sleep 20',導致容器睡眠 20 秒。 此暫停為容器在實際停止之前,提供一些時間完成任何進行中的工作或清除。

      TerminationGracePeriodSeconds 設定為 Pod 提供 120 秒的總時間來正常終止,包括任何生命週期勾點所花費的時間,例如 PreStop

請使用下列步驟來更新附加元件設定。

  1. 在 Azure Spring 應用程式執行個體中,選取瀏覽窗格上的 [Spring Cloud 閘道],然後選取 [設定]
  2. 指定 Addon Configs 的 JSON 值。
  3. 選取 [儲存]。

下一步