共用方式為


在 Azure Spring 應用程式中自訂輸入設定

注意

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

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

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

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

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

名稱 輸入設定 預設值 有效範圍 描述
ingress-read-timeout proxy-read-timeout 300 [1,1800] 從 Proxy 伺服器讀取回應的逾時 (以秒為單位)。
ingress-send-timeout proxy-send-timeout 60 [1,1800] 將要求傳輸至 Proxy 伺服器的逾時 (以秒為單位)。
session-affinity affinity Session, None 提出要求的親和性類型會移至回應先前要求的相同 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 設定。 對於相同服務執行個體內應用程式間流量的通訊協定,該通訊協定不會限制您的選擇。
client-auth client-auth 0 (已選取) - 選取具有您在 TLS/SSL 設定中上傳之公開金鑰的憑證。 輸入會將這些憑證串連成一個憑證,接著用來進行用戶端驗證。

必要條件

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

  • 使用 Azure Spring 應用程式延伸模組的 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 <app-name> \
    --ingress-read-timeout 300 \
    --ingress-send-timeout 60 \
    --session-affinity Cookie \
    --session-max-age 1800 \
    --backend-protocol Default \
    --client-auth-certs <cert-id>

注意

cert-id 值的格式為 /subscriptions/<your-sub-id>/resourceGroups/<resource-group-name>/providers/Microsoft.AppPlatform/Spring/<service-name>/certificates/<cert-name>。 若要取得 cert-id 值,請使用下列命令:az spring certificate show --service <service-instance-name> --resource-group <resource-group-name> --name <certificate-name> --query id

這個命令會使用下列設定建立應用程式:

  • 輸入讀取逾時:300 秒
  • 輸入傳送逾時:60 秒
  • 工作階段親和性:Cookie
  • 工作階段 Cookie 存留期上限:1800 秒
  • 後端通訊協定:預設
  • 用戶端驗證:cert-name

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

使用下列步驟更新現有服務執行個體所裝載應用程式的輸入設定。

  1. 使用與包含 Azure Spring Apps 執行個體的 Azure 訂閱建立關聯的帳戶,登入入口網站。

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

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

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

    Azure 入口網站 [設定] 頁面的螢幕擷取畫面,其中顯示 [輸入設定] 索引標籤。

常見問題集

  • 如何啟用 gRPC?

    將後端通訊協定設為 gRPC

  • 如何啟用 WebSocket?

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

    您也可以根據 WebSocket 使用 RSocket。

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

    輸入組態仍可在 Azure CLI 和 SDK 中使用,且該設定會套用至服務執行個體內的所有應用程式。 輸入設定完成應用程式設定後,輸入組態不能影響它。 因為計畫在未來停止支援輸入組態,所以不建議新的指令碼使用輸入組態。

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

    會使用較短的逾時。

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

    只要應用程式閘道支援 gRPC,就不需要額外組態。

  • 是否支援可設定的連接埠?

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

下一步