自定义 Azure Spring Apps 中的入口配置
注意
基本、标准和企业计划将从 2025 年 3 月中旬开始弃用,停用期为 3 年。 建议转换到 Azure 容器应用。 有关详细信息,请参阅 Azure Spring Apps 停用公告。
标准消耗和专用计划将于 2024 年 9 月 30 日开始弃用,并在六个月后完全关闭。 建议转换到 Azure 容器应用。
本文介绍如何使用 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-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 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)。