你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
配置 VMware Spring Cloud 网关
注意
从 2025 年 3 月中旬开始,基本、标准和企业计划将弃用,停用期为三年。 建议过渡到 Azure 容器应用。 有关详细信息,请参阅 Azure Spring Apps 停用公告。
从 2024 年 9 月 30 日开始,标准消耗和专用计划将弃用,六个月后将完全关闭。 建议过渡到 Azure 容器应用。 有关详细信息,请参阅将 Azure Spring Apps 标准消耗和专用计划迁移到 Azure 容器应用。
本文适用于:❌ 基本版/标准版 ✔️ 企业版
本文介绍如何使用 Azure Spring Apps Enterprise 计划为 VMware Tanzu 配置 VMware Spring Cloud Gateway。
VMware Spring Cloud 网关是一个基于开源 Spring Cloud 网关项目的商业 VMware Tanzu 组件。 Tanzu 的 VMware Spring Cloud Gateway 处理 API 开发团队的跨领域问题,例如单一登录 (SSO)、访问控制、速率限制、复原能力和安全性。 可以在选择的 API 开发编程语言中使用现代云原生模式来加速 API 交付。
VMware Spring Cloud Gateway 实例根据规则路由流量。 支持横向缩放和纵向缩放以满足动态流量负载。
VMware Spring Cloud 网关包括以下功能:
- 动态路由配置独立于单个应用程序,无需重新编译即可应用和更改
- 用于将授权的 JSON Web 令牌 (JWT) 声明传输到应用程序服务的商业 API 路由筛选器
- 客户端证书授权
- 速率限制方法
- 断路器配置
- 支持通过 HTTP 基本身份验证凭据访问应用程序服务
若要与 VMware Tanzu 的 API 门户集成,VMware Spring Cloud Gateway 会在任何路由配置发生增添或变更后自动生成 OpenAPI 版本 3 文档。 有关详细信息,请参阅使用 VMware Tanzu 的 API 门户。
先决条件
- 已启用 VMware Spring Cloud Gateway 的已预配 Azure Spring Apps Enterprise 计划服务实例。 有关详细信息,请参阅快速入门:使用企业计划生成应用并将其部署到 Azure Spring Apps。
- Azure CLI 2.0.67 或更高版本。 使用以下命令安装 Azure Spring Apps 扩展:
az extension add --name spring
。
启用或禁用 VMware Spring Cloud Gateway
可以使用 Azure 门户或 Azure CLI 在创建服务实例后启用或禁用 VMware Spring Cloud Gateway。 在禁用 VMware Spring Cloud Gateway 之前,必须取消分配其终结点并删除所有路由配置。
使用以下步骤通过 Azure 门户启用或禁用 VMware Spring Cloud Gateway:
- 转到服务资源,然后选择 Spring Cloud Gateway。
- 选择“管理”。
- 选中或取消选中“启用 Spring Cloud Gateway”复选框,然后选择“保存”。
现在可以在 Spring Cloud Gateway 页上查看 Spring Cloud Gateway 的状态。
重启 VMware Spring Cloud Gateway
完成重启操作后,系统会滚动式重启 VMware Spring Cloud Gateway 实例。
使用以下步骤通过 Azure 门户重启 VMware Spring Cloud Gateway:
- 转到服务资源,然后选择 Spring Cloud Gateway。
- 选择“重启”。
- 选择“确定”以确认重启。
将公共终结点分配到 VMware Spring Cloud Gateway
本部分介绍如何将公共参与者分配给 VMware Spring Cloud Gateway 并配置其属性。
若要在 Azure 门户中分配终结点,请使用以下步骤:
- 打开 Azure Spring Apps 实例。
- 在导航窗格中选择 Spring Cloud Gateway,然后选择“概述”。
- 将“分配终结点”设置为“是”。
几分钟后,URL 会显示配置的终结点 URL。 保存 URL 供以后使用。
配置 VMware Spring Cloud 网关元数据
VMware Spring Cloud Gateway 元数据自动生成 OpenAPI 版本 3 文档。 可以将 VMware Spring Cloud Gateway 元数据配置为在 VMware Tanzu 的 API 门户中显示路由组。 有关详细信息,请参阅使用 VMware Tanzu 的 API 门户。
下表介绍了可用的元数据选项:
properties | 说明 |
---|---|
title |
描述 VMware Spring Cloud Gateway 实例上可用 API 的上下文的标题。 默认值为 Spring Cloud Gateway for K8S 。 |
description |
有关 VMware Spring Cloud Gateway 实例上可用的 API 的详细说明。 默认值为 Generated OpenAPI 3 document that describes the API routes configured for '[Gateway instance name]' Spring Cloud Gateway instance deployed under '[namespace]' namespace.*. |
documentation |
VMware Spring Cloud Gateway 实例上可用 API 文档的位置。 |
version |
此 VMware Spring Cloud Gateway 实例上的可用 API 版本。 默认值为 unspecified 。 |
serverUrl |
用于访问 VMware Spring Cloud Gateway 实例上的 API 的基 URL。 如果要与 API 门户集成,则此属性为必要项。 |
可以使用 Azure 门户或 Azure CLI 编辑元数据属性。
若要在 Azure 门户中编辑元数据,请使用以下步骤:
- 打开 Azure Spring Apps 实例。
- 在导航窗格中选择 Spring Cloud Gateway,然后选择“配置”。
- 为 API 列出的属性指定值。
- 选择“保存”。
配置单一登录
VMware Spring Cloud Gateway 支持使用 OpenID 标识提供者通过单一登录 (SSO) 进行身份验证和授权。 提供程序支持 OpenID Connect Discovery 协议。 下表介绍了 SSO 属性:
properties | 必需? | 说明 |
---|---|---|
issuerUri |
是 | 被断言为其证书颁发者标识符的 URI。 例如,如果 issuerUri 是 https://example.com ,则将向“https://example.com/.well-known/openid-configuration ”发出 OpenID 提供程序配置请求。 结果应该是 OpenID 提供程序配置响应。 |
clientId |
是 | 标识提供者提供的 OpenID Connect 客户端 ID。 |
clientSecret |
是 | 标识提供者提供的 OpenID Connect 客户端密码。 |
scope |
是 | 要包括在 JWT 标识令牌中的作用域的列表。 此列表应以标识提供者允许的范围为依据。 |
若要使用 Microsoft Entra ID 设置 SSO,请参阅使用适用于 Spring Cloud Gateway 和 API 门户的 Microsoft Entra ID 设置单一登录。
可以使用 Azure 门户或 Azure CLI 编辑 SSO 属性。
若要在 Azure 门户中编辑 SSO 属性,请使用以下步骤:
- 打开 Azure Spring Apps 实例。
- 在导航窗格中选择 Spring Cloud Gateway,然后选择“配置”。
- 为 SSO 列出的属性指定值。
- 选择“保存”。
VMware Spring Cloud Gateway 仅支持支持 OpenID Connect Discovery 协议的授权服务器。 此外,请确保将外部授权服务器配置为允许重定向回网关。 请参阅授权服务器的文档,并将 https://<gateway-external-url>/login/oauth2/code/sso
添加到允许的重定向 URI 列表。
如果配置了错误的 SSO 属性(例如错误的密码),应删除整个 SSO 属性,然后重新添加正确的配置。
配置 SSO 后,请务必为 VMware Spring Cloud Gateway 路由设置 ssoEnabled: true
。
配置 SSO 注销
VMware Spring Cloud Gateway 服务实例提供用于注销当前 SSO 会话的默认 API 终结点。 此终结点的路径为 /scg-logout
。 注销会导致以下结果之一,具体取决于调用注销终结点的方式:
- 注销会话并重定向到标识提供者 (IdP) 注销。
- 注销服务实例会话。
注销 IdP 和 SSO 会话
如果将 GET
请求发送到 /scg-logout
终结点,则终结点会向 IdP 注销 URL 发送 302
重定向响应。 若要获取终结点以将用户返回到网关服务实例上的路径,请将重定向参数添加到具有 /scg-logout
终结点的 GET
请求。 例如,可以使用 ${server-url}/scg-logout?redirect=/home
。
重定向参数的值必须是 VMware Spring Cloud Gateway 服务实例上的有效路径。 无法重定向到外部 URL。
以下步骤介绍了如何在微服务中实现函数的示例:
获取路由配置以将注销请求路由到应用程序。 有关示例,请参阅 GitHub 上的 animal-rescue 存储库中的路由配置。
向应用程序添加所需的任何注销逻辑。 最后,需要向网关的
/scg-logout
终结点发出GET
请求,如 animal-rescue 存储库中getActionButton
方法的return
值所示。
仅注销 SSO 会话
如果使用 XMLHttpRequest
将 GET
请求发送到 /scg-logout
终结点,则 302
重定向可能会被吞没,并且不会在响应处理程序中得到处理。 在这种情况下,用户只会在 VMware Spring Cloud Gateway 服务实例上注销 SSO 会话。 用户仍具有有效的 IdP 会话。 通常情况下,如果用户尝试再次登录,系统会将他们自动发送回经过 IdP 身份验证的网关。
需要配置路由以将注销请求路由到应用程序,如以下示例所示。 此代码用于创建仅针对网关的注销 SSO 会话。
const req = new XMLHttpRequest();
req.open("GET", "/scg-logout);
req.send();
配置跨源资源共享
跨源资源共享 (CORS) 允许从提供第一个资源的域之外的另一个域请求网页上的受限资源。 下表介绍了可用的 CORS 配置选项。
properties | 说明 |
---|---|
allowedOrigins |
已允许源发出跨站点请求 |
allowedOriginPatterns |
可发出跨站点请求的允许的源模式 |
allowedMethods |
已允许的对于跨站点请求的 HTTP 方法 |
allowedHeaders |
跨站点请求中允许的标头 |
maxAge |
客户端从预检请求缓存响应的时间(以秒为单位) |
allowCredentials |
跨站点请求是否支持用户凭据 |
exposedHeaders |
要为跨站点请求公开的 HTTP 响应标头 |
如果要与 API 门户集成,请确保具有正确的 CORS 配置。 有关详细信息,请参阅“将公共终结点分配到 VMware Spring Cloud Gateway”部分。
使用服务缩放
可以自定义 VMware Spring Cloud Gateway 实例的资源分配,包括 vCPU、内存和实例计数。
为实现高可用性,不建议使用单个副本。
下表描述了默认资源使用情况。
构成名称 | 实例计数 | 每个实例的 vCPU 数 | 每个实例的内存 |
---|---|---|---|
VMware Spring Cloud 网关 | 2 | 1 个内核 | 2 GiB |
VMware Spring Cloud 网关运营商 | 2 | 1 个内核 | 2 GiB |
在网关和应用程序之间配置 TLS
为了增强安全性并帮助防止未经授权的各方拦截敏感信息,可以在 VMware Spring Cloud Gateway 和应用程序之间启用传输层安全性 (TLS)。
在配置 TLS 之前,需要具有已启用 TLS 的应用程序和 TLS 证书。 若要准备 TLS 证书,请从受信任的证书颁发机构 (CA) 生成证书。 证书验证服务器的标识并建立安全连接。
在 Azure Spring Apps 中运行启用了 TLS 的应用程序后,请将证书上传到 Azure Spring Apps。 有关详细信息,请参阅在 Azure Spring Apps 的应用程序中使用 TLS/SSL 证书的导入证书部分。
将证书更新到 Azure Spring Apps 后,可以为网关配置 TLS 证书并启用证书验证。 可以在 Azure 门户中或使用 Azure CLI 配置证书。
使用以下步骤在 Azure 门户中配置证书:
- 在 Azure Spring Apps 实例中,选择导航窗格中的 Spring Cloud Gateway。
- 在 Spring Cloud Gateway 页上,选择“证书管理”。
- 选择“启用证书验证”。
- 在证书中选择 TLS 证书。
- 选择“保存”。
更新配置可能需要几分钟。 配置完成后,会收到通知。
准备路由配置
必须在路由配置中将协议指定为 HTTPS。 以下 JSON 对象指示 VMware Spring Cloud Gateway 对网关和应用之间的所有流量使用 HTTPS 协议。
创建包含以下内容的名为 test-tls-route.json 的文件:
{ "routes": [ { "title": "Test TLS app", "predicates": [ "Path=/path/to/your/app", "Method=GET" ] } ], "uri": "https://<app-custom-domain-name>" }
使用以下命令将规则应用于应用:
az spring gateway route-config create \ --resource-group <resource-group-name> \ --service <Azure-Spring-Apps-instance-name> \ --name test-tls-app \ --routes-file test-tls-route.json
现在可以测试是否通过网关终结点为应用启用了 TLS。 有关详细信息,请参阅使用 Spring Cloud Gateway 的“配置路由”部分。
轮换证书
证书过期后,需要使用以下步骤轮换 VMware Spring Cloud Gateway 中的证书:
- 从受信任的 CA 生成新证书。
- 将证书导入 Azure Spring Apps。 有关详细信息,请参阅在 Azure Spring Apps 的应用程序中使用 TLS/SSL 证书的导入证书部分。
- 使用 Azure 门户或 Azure CLI 同步证书。
VMware Spring Cloud Gateway 会重启,以确保网关对所有连接使用新证书。
使用以下步骤同步证书:
- 在 Azure Spring Apps 实例中,选择导航窗格中的 Spring Cloud Gateway。
- 在 Spring Cloud Gateway 页上,选择“重启”,然后确认操作。
设置自动缩放设置
可以为 VMware Spring Cloud Gateway 设置自动缩放模式。
以下列表显示了可用于自动缩放需求管理的选项:
- 手动缩放选项用于维护固定实例计数。 最多可以横向扩展到 10 个实例。 此值会更改 Spring Cloud Gateway 的单独运行实例的数目。
- 自定义自动缩放选项可根据任意计划、基于任意指标进行扩展。
在 Azure 门户中,选择所需缩放方式。 以下屏幕截图显示“自定义自动缩放”选项和模式设置:
有关可用指标的信息,请参阅 Azure Spring Apps 指标的用户指标选项部分。
配置响应缓存
响应缓存配置提供了一种定义 HTTP 响应缓存的方法,通过使用该方法,可以在全局或路由级别应用该缓存。
在全局级别启用响应缓存
在全局级别启用响应缓存后,系统会自动为所有适用路由启用响应缓存。
使用以下步骤在全局级别启用响应缓存:
- 在 Azure Spring Apps 实例中,选择导航窗格中的 Spring Cloud Gateway。
- 在“Spring Cloud Gateway”页上,选择“配置”。
- 在“响应缓存”部分中,选择“启用响应缓存”,然后将“范围”设置为“实例”。
- 设置响应缓存的大小和生存时间。
- 选择“保存”。
使用以下步骤禁用响应缓存:
- 在 Azure Spring Apps 实例中,选择导航窗格中的 Spring Cloud Gateway。
- 在“Spring Cloud Gateway”页上,选择“配置”。
- 在“响应缓存”部分中,清除“启用响应缓存”。
- 选择“保存”。
在路由级别启用响应缓存
若要为任何路由启用响应缓存,请使用 LocalResponseCache
筛选器。 以下示例演示如何在传递规则配置中使用 LocalResponseCache
筛选器:
{
"filters": [
"<other-app-level-filter-of-route>",
],
"routes": [
{
"predicates": [
"Path=/api/**",
"Method=GET"
],
"filters": [
"<other-filter-of-route>",
"LocalResponseCache=3m, 1MB"
],
}
]
}
有关详细信息,请参阅 VMware 文档中如何将 VMware Spring Cloud Gateway 路由筛选器与 Azure Spring Apps Enterprise 计划和 LocalResponseCache 配合使用的 LocalResponseCache 部分。
可以在 Spring Cloud Gateway 级别设置这些参数,而不是单独为每个 LocalResponseCache
过滤器配置 size
和 timeToLive
。 使用此选项,可以在最初不指定这些值的情况下使用 LocalResponseCache
筛选器,同时保留灵活性,以便在日后重写这些值。
使用以下步骤在路由级别启用响应缓存并设置 size
和 timeToLive
:
- 在 Azure Spring Apps 实例中,选择导航窗格中的 Spring Cloud Gateway。
- 在“Spring Cloud Gateway”页上,选择“配置”。
- 在“响应缓存”部分中,选择“启用响应缓存”,然后将“范围”设置为“路由”。
- 设置响应缓存的大小和生存时间。
- 选择“保存”。
使用以下步骤在路由级别禁用响应缓存,这将清除 size
和 timeToLive
:
- 在 Azure Spring Apps 实例中,选择导航窗格中的 Spring Cloud Gateway。
- 在“Spring Cloud Gateway”页上,选择“配置”。
- 在“响应缓存”部分中,清除“启用响应缓存”。
- 选择“保存”。
以下示例展示了在 Spring Cloud Gateway 级别设置 size
和 timeToLive
时如何使用 LocalResponseCache
过滤器:
{
"filters": [
"<other-app-level-filter-of-route>",
],
"routes": [
{
"predicates": [
"Path=/api/path1/**",
"Method=GET"
],
"filters": [
"<other-filter-of-route>",
"LocalResponseCache"
],
},
{
"predicates": [
"Path=/api/path2/**",
"Method=GET"
],
"filters": [
"<other-filter-of-route>",
"LocalResponseCache=3m, 1MB"
],
}
]
}
配置环境变量
Azure Spring Apps 服务管理并优化 VMware Spring Cloud Gateway。 除了配置应用程序性能监视 (APM) 和日志级别的用例外,通常不需要使用环境变量配置 VMware Spring Cloud Gateway。
如果无法通过本文中描述的其他配置来满足你的要求,你可以尝试配置通用应用程序属性列表中显示的环境变量。 在将配置应用到生产环境之前,请务必在测试环境中验证配置。
若要在 Azure 门户中配置环境变量,请使用以下步骤:
- 在 Azure Spring Apps 实例中,在导航窗格中选择 Spring Cloud Gateway,然后选择“配置”。
- 在“属性”和“秘密”部分中填写环境变量的键/值对。 可以在“机密”部分加入具有敏感信息的变量。
- 选择“保存”以保存更改。
更新环境变量后,VMware Spring Cloud Gateway 将重启。
配置应用程序性能监视
若要监视 VMware Spring Cloud Gateway,可以配置 APM。 下表列出了 VMware Spring Cloud Gateway 提供的五种类型的 APM Java 代理及其必要的环境变量。
Java 代理 | 必要的环境变量 |
---|---|
Application Insights | APPLICATIONINSIGHTS_CONNECTION_STRING |
Dynatrace | DT_TENANT DT_TENANTTOKEN DT_CONNECTION_POINT |
New Relic | NEW_RELIC_LICENSE_KEY NEW_RELIC_APP_NAME |
AppDynamics | APPDYNAMICS_AGENT_APPLICATION_NAME APPDYNAMICS_AGENT_TIER_NAME APPDYNAMICS_AGENT_NODE_NAME APPDYNAMICS_AGENT_ACCOUNT_NAME APPDYNAMICS_AGENT_ACCOUNT_ACCESS_KEY APPDYNAMICS_CONTROLLER_HOST_NAME APPDYNAMICS_CONTROLLER_SSL_ENABLED APPDYNAMICS_CONTROLLER_PORT |
Elastic APM | ELASTIC_APM_SERVICE_NAME ELASTIC_APM_APPLICATION_PACKAGES ELASTIC_APM_SERVER_URL |
有关其他受支持的环境变量,请参阅以下源:
在服务实例级别配置 APM 集成(推荐)
若要在 VMware Spring Cloud Gateway 中启用 APM 监视,可以在服务级别创建 APM 配置并将其绑定到 Spring Cloud Gateway。 这样即可方便地一次性完成 APM 配置,并将相同的 APM 绑定到 Spring Cloud Gateway 和应用程序。
使用以下步骤通过 Azure 门户设置 APM:
使用 APM 名称、类型和属性在服务实例级别配置 APM。 有关更多信息,请参阅如何配置 APM 集成和 CA 证书的在服务实例级别管理 APM(推荐)部分。
在导航窗格中选择 Spring Cloud Gateway,然后选择 APM。
在 APM 引用名称列表中选择 APM 名称。 该列表包括步骤 1 中配置的所有 APM 名称。
选择“保存”,将 APM 引用名称绑定到 Spring Cloud Gateway。 网关将重启以启用 APM 监视。
在 VMware Spring Cloud Gateway 中管理 APM(已弃用)
可以使用 Azure 门户或 Azure CLI 在 VMware Spring Cloud Gateway 中设置 APM。 还可以指定要使用的 APM Java 代理的类型以及它们支持的相应 APM 环境变量。
使用以下步骤通过 Azure 门户设置 APM:
- 在 Azure Spring Apps 实例中,在导航窗格中选择 Spring Cloud Gateway,然后选择“配置”。
- 在 APM 列表中选择 APM 类型以监视网关。
- 在“属性”和“机密”部分中填写 APM 环境变量的键/值对。 可以在机密中加入包含敏感信息的变量。
- 选择“保存”以保存更改。
更新配置可能需要几分钟。 配置完成后,会收到通知。
注意
Azure Spring Apps 以相同的节奏升级 APM 代理和部署的应用程序,以维系 VMware Spring Cloud Gateway 和 Azure Spring Apps 之间代理的兼容性。
默认情况下,Azure Spring Apps 会将 APM Java 代理的日志输出到 STDOUT
。 这些日志会包含在 VMware Spring Cloud Gateway 日志中。 可以检查日志中使用的 APM 代理的版本。 可以在 Log Analytics 中查询这些日志以执行故障排除。
若要使 APM 代理正常工作,请提升 VMware Spring Cloud Gateway 的 CPU 和内存。
配置日志级别
可以通过以下方式配置 VMware Spring Cloud Gateway 的日志级别,以获取更多详细信息或减少日志:
- 可以将日志级别设置为
TRACE
、DEBUG
、INFO
、WARN
、ERROR
或OFF
。 VMware Spring Cloud Gateway 的默认日志级别为INFO
。 - 可以通过将日志级别设置为
OFF
来关闭日志。 - 日志级别设为
WARN
、ERROR
或OFF
的情况下,在向 Azure Spring Apps 团队请求支持时可能需要将其调整为INFO
。 此更改会导致 VMware Spring Cloud Gateway 重启。 - 将日志级别设置为
TRACE
或DEBUG
可能会影响 VMware Spring Cloud Gateway 的性能。 尽量避免在生产环境中进行这些设置。 - 可以为
root
记录器或特定记录器(例如io.pivotal.spring.cloud.gateway
)设置日志级别。
以下记录器可能包含 TRACE
和 DEBUG
级别的有价值的故障排除信息:
记录器类 | 说明 |
---|---|
io.pivotal.spring.cloud.gateway |
筛选器和判断式,包括自定义扩展 |
org.springframework.cloud.gateway |
API 网关 |
org.springframework.http.server.reactive |
HTTP 服务器交互 |
org.springframework.web.reactive |
API 网关反应式流 |
org.springframework.boot.autoconfigure.web |
API 网关自动配置 |
org.springframework.security.web |
身份验证和授权信息 |
reactor.netty |
Reactor Netty |
若要获取环境变量密钥,请添加 logging.level.
前缀,然后通过配置环境 logging.level.{loggerName}={logLevel}
来设置日志级别。 以下示例显示了 Azure 门户和 Azure CLI 的步骤。
若要在 Azure 门户中配置日志级别,请使用以下步骤:
- 在 Azure Spring Apps 实例中,在导航窗格中选择 Spring Cloud Gateway,然后选择“配置”。
- 在“属性”和“机密”部分中填写日志级别环境变量的键/值对。 如果在你的案例中,日志级别是敏感信息,则可以在“机密”部分加入这些信息。
- 选择“保存”以保存更改。
更新加载项配置
借助加载项配置功能,可以使用 JSON 格式字符串自定义 VMware Spring Cloud Gateway 的某些属性。 如果需要配置未通过 REST API 公开的属性,此功能非常有用。
加载项配置是一个 JSON 对象,其中包含表示所需配置的键/值对。 以下示例显示了 JSON 格式的结构:
{
"<addon-key-name>": {
"<addon-key-name>": "<addon-value>"
...
},
"<addon-key-name>": "<addon-value>",
...
}
以下列表显示了加载项键名和值类型支持的加载项配置。 升级 VMware Spring Cloud Gateway 版本时,此列表可能会发生更改。
SSO 配置:
键名:
sso
值类型:对象
属性:
RolesAttributeName
(字符串):指定包含与 SSO 会话关联的角色的属性的名称。InactiveSessionExpirationInMinutes
(整数):指定非活动 SSO 会话的过期时间(以分钟为单位)。 值0
表示会话永不过期。
示例:
{ "sso": { "rolesAttributeName": "roles", "inactiveSessionExpirationInMinutes": 1 } }
元数据配置:
键名:
api
值类型:对象
属性
groupId
(字符串):VMware Spring Cloud Gateway 实例上可用的 API 组的唯一标识符。 值只能包含小写字母和数字。
示例:
{ "api": { "groupId": "id1" } }
Pod 配置
键名称:
PodOverrides
,用于指定默认 Pod 配置的替代项。值类型:对象
属性
Containers
:此数组包含 Pod 中各个容器的配置。 目前仅支持名为gateway
的容器。Name
:指定容器的名称。 容器应命名为gateway
。Lifecycle
:PreStop
是在容器即将终止时执行的生命周期挂钩。 通过此挂钩,你可以在容器停止之前执行任何必要的清理。
TerminationGracePeriodSeconds
:指定 Kubernetes 在强行终止 Pod 之前等待 Pod 正常终止的时间量。
示例:
{ "PodOverrides": { "Containers": [ { "Name": "gateway", "Lifecycle": { "PreStop": { "Exec": { "Command": [ "/bin/sh", "-c", "sleep 20" ] } } } } ], "TerminationGracePeriodSeconds": 120 } }
终止包含此容器的 Pod 时,
PreStop
挂钩执行命令/bin/sh -c 'sleep 20'
,导致容器休眠 20 秒。 此暂停使容器有一段时间来完成任何正在进行的任务或清理,然后再实际停止。TerminationGracePeriodSeconds
设置为 Pod 提供总共 120 秒的时间来让其正常终止,包括任何生命周期挂钩(例如PreStop
)所花费的时间。
使用以下步骤更新加载项配置。
- 在 Azure Spring Apps 实例中,在导航窗格中选择 Spring Cloud Gateway,然后选择“配置”。
- 指定加载项配置的 JSON 值。
- 选择“保存”。