分享方式:


自定義 Azure Spring Apps 中的輸入組態

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

本文說明如何使用 Azure 入口網站 和 Azure CLI,在 Azure Spring Apps 中設定及更新應用程式的輸入設定。

Azure Spring Apps 服務會使用基礎輸入控制器來處理應用程式流量管理。 自訂支援下列輸入設定。

名稱 輸入設定 預設值 有效範圍 描述
ingress-read-timeout proxy-read-timeout 300 [1,1800] 從 Proxy 伺服器讀取回應以秒為單位的逾時。
ingress-send-timeout proxy-send-timeout 60 [1,1800] 將要求傳送至 Proxy 伺服器以秒為單位的逾時。
session-affinity affinity 會話、無 發出要求之親和性的類型會傳至回應先前要求的相同Pod複本。 設定 session-affinity 為 [Cookie] 以啟用會話親和性。 在入口網站中,您必須選擇 [啟用會話親和性] 方塊。
session-max-age session-cookie-max-age 0 [0, 604800] Cookie 到期的秒數,對應至 Max-Age Cookie 指示詞。 如果您設定 session-max-age 為 0,到期期間會等於瀏覽器工作階段期間。
backend-protocol backend-protocol 預設 默認值,GRPC 設定後端通訊協定,指出NGINX應該如何與後端服務通訊。 預設值表示 HTTP/HTTPS/WebSocket。 此 backend-protocol 設定僅適用於客戶端對應用程式流量。 針對相同服務實例內的應用程式對應用程式流量,請選擇應用程式對應用程式流量的任何通訊協定,而不需修改 backend-protocol 設定。 通訊協定不會限制您在相同服務實例內的應用程式對應用程式流量選擇通訊協定。

必要條件

  • Azure 訂用帳戶。 如果您沒有 Azure 訂用帳戶,請在開始前建立免費帳戶

  • 具有 Azure Spring Apps 擴充功能的 Azure CLI 。 使用下列命令來移除舊版並安裝最新的擴充功能。 如果您先前已安裝 spring-cloud 擴充功能,請將其卸載,以避免設定和版本不符。

    az extension remove --name spring
    az extension add --name spring
    az extension remove --name spring-cloud
    

設定輸入組態

使用下列 Azure CLI 命令,在建立時設定輸入組態。

az spring app create \
    --resource-group <resource-group-name> \
    --service <service-name> \
    --name <service-name> \
    --ingress-read-timeout 300 \
    --ingress-send-timeout 60 \
    --session-affinity Cookie \
    --session-max-age 1800 \
    --backend-protocol Default \

這個指令會建立具有下列設定的應用程式:

  • 輸入讀取逾時:300 秒
  • 輸入傳送逾時:60 秒
  • 會話親和性:Cookie
  • 會話 Cookie 最大存留期:1800 秒
  • 後端通訊協議:預設值

更新現有應用程式的輸入設定

使用下列步驟來更新現有服務實例所裝載之應用程式的輸入設定。

  1. 使用與包含 Azure Spring Apps 實例的 Azure 訂用帳戶相關聯的帳戶登入入口網站。

  2. 流覽至 [ 應用程式] 窗格,然後選取您要設定的應用程式。

  3. 流覽至 [ 組態 ] 窗格,然後選取 [輸入設定 ] 索引標籤。

  4. 更新輸入設定,然後選取 [ 儲存]。

    Screenshot of Azure portal Configuration page showing the Ingress settings tab.

常見問題集

  • 如何啟用 gRPC?

    將後端通訊協定設定為 GRPC

  • 如何啟用 WebSocket?

    如果您將後端通訊協定設定為 [預設],則預設會啟用 WebSocket。 WebSocket 連線限製為20000。 當您達到該限制時,連線將會失敗。

    您也可以根據 WebSocket 使用 RSocket。

  • 輸入組態與輸入設定之間的差異為何?

    輸入組態仍可在 Azure CLI 和 SDK 中使用,且該設定會套用至服務實例內的所有應用程式。 一旦輸入設定設定應用程式之後,輸入組態就不會影響它。 我們不建議新的腳本使用輸入組態,因為我們計劃在未來停止支援它。

  • 當輸入設定與應用程式閘道/APIM 搭配使用時,當您在 Azure Spring Apps 輸入和應用程式閘道/APIM 中設定逾時時會發生什麼事?

    使用較短的逾時。

  • 如果您需要 gRPC 或 WebSocket 的端對端支援,是否需要在應用程式閘道/APIM 中額外設定?

    只要應用程式閘道支援 gRPC,您就不需要額外的設定。

  • 是否支援可設定的埠?

    目前不支援可設定的埠(80/443)。

下一步