在 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
更新現有應用程式的輸入設定
使用下列步驟更新現有服務執行個體所裝載應用程式的輸入設定。
常見問題集
如何啟用 gRPC?
將後端通訊協定設為 gRPC。
如何啟用 WebSocket?
如果將後端通訊協定設為預設,則會預設啟用 WebSocket。 WebSocket 連線限制為 20000。 當您觸達該限制時,連線會失敗。
您也可以根據 WebSocket 使用 RSocket。
輸入組態與輸入設定之間的差異為何?
輸入組態仍可在 Azure CLI 和 SDK 中使用,且該設定會套用至服務執行個體內的所有應用程式。 輸入設定完成應用程式設定後,輸入組態不能影響它。 因為計畫在未來停止支援輸入組態,所以不建議新的指令碼使用輸入組態。
當輸入設定與應用程式閘道/APIM 搭配使用時,若在 Azure Spring 應用程式輸入和應用程式閘道/APIM 中設定逾時,會發生什麼情況?
會使用較短的逾時。
如果您需要擁有 gRPC 或 WebSocket 的端對端支援,是否需要在應用程式閘道/APIM 中有額外組態?
只要應用程式閘道支援 gRPC,就不需要額外組態。
是否支援可設定的連接埠?
目前不支援可設定的連接埠 (80/443)。