注意
基本标准计划于 2025 年 3 月 17 日进入退休期。 有关详细信息,请参阅 Azure Spring Apps 停用公告。
标准消耗和专用计划于 2024 年 9 月 30 日进入停用期,并将在 2025 年 3 月底之前完全关闭。
本文介绍如何使用 Azure 门户和 Azure CLI 在 Azure Spring Apps 中设置和更新应用程序的入口设置。
Azure Spring Apps 服务使用基础入口控制器来处理应用程序流量管理。 以下入口设置支持自定义。
| 名称 | 入口设置 | 默认值 | 有效范围 | 说明 | 
|---|---|---|---|---|
| ingress-read-timeout | proxy-read-timeout | 300 | [1,1800] | 从代理服务器读取响应的超时(以秒为单位)。 | 
| ingress-send-timeout | proxy-send-timeout | 60 | [1,1800] | 将请求传输到代理服务器的超时时间(以秒为单位)。 | 
| session-affinity | affinity | 无 | Session、None | 使请求到达响应前一个请求的同一 Pod 副本的相关性类型。 将 session-affinity设置为 Cookie 以启用会话亲和性。 仅在门户中,必须选择“启用会话亲和性”框。 | 
| session-max-age | session-cookie-max-age | 0 | [0, 604800] | cookie 过期前的时间(以秒为单位),对应于 Max-Agecookie 指令。 如果将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 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 <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 秒
- 后端协议:默认
- 客户端身份验证:证书名称
更新现有应用的入口设置
使用以下步骤更新现有服务实例托管的应用程序的入口设置。
常见问题解答
- 如何启用 gRPC? - 将后端协议设置为“GRPC”。 
- 如何启用 WebSocket? - 如果你将后端协议设置为 Default,则默认启用 WebSocket。 WebSocket 连接限制为 20000。 达到该限制时,连接会失败。 - 你还可以使用基于 WebSocket 的 RSocket。 
- 入口配置和入口设置有什么区别? - 入口配置仍然可以在 Azure CLI 和 SDK 中使用,并且该设置适用于服务实例中的所有应用。 入口设置配置应用后,入口配置无法影响它。 我们不建议新脚本使用入口配置,因为我们计划在未来停止支持入口配置。 
- 如果入口设置与应用网关/APIM 一起使用,在 Azure Spring应用入口和应用程序网关/APIM 中设置超时时会发生什么情况? - 使用较短的超时。 
- 如果你需要对 gRPC 或 WebSocket 的端到端支持,是否需要在应用程序网关/APIM 中进行额外配置? - 只要应用程序网关支持 gRPC,就不需要进行额外的配置。 
- 是否支持可配置端口? - 当前不支持可配置端口 (80/443)。 
