你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

配置 VMware Spring Cloud 网关

注意

基本、标准和企业计划将从 2025 年 3 月中旬开始弃用,停用期为 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 门户或 Azure CLI 在创建服务实例后启用或禁用 VMware Spring Cloud Gateway。 在禁用 VMware Spring Cloud Gateway 之前,必须取消分配其终结点并删除所有路由配置。

使用以下步骤通过 Azure 门户启用或禁用 VMware Spring Cloud Gateway:

  1. 转到服务资源,然后选择 Spring Cloud Gateway
  2. 选择“管理”。
  3. 选中或取消选中“启用 Spring Cloud Gateway”复选框,然后选择“保存”。

现在可以在 Spring Cloud Gateway 页上查看 Spring Cloud Gateway 的状态。

显示 Spring Cloud Gateway 页的 Azure 门户的屏幕截图。

重启 VMware Spring Cloud Gateway

完成重启操作后,系统会滚动式重启 VMware Spring Cloud Gateway 实例。

使用以下步骤通过 Azure 门户重启 VMware Spring Cloud Gateway:

  1. 转到服务资源,然后选择 Spring Cloud Gateway
  2. 选择“重启”。
  3. 选择“确定”以确认重启。

Azure 门户的屏幕截图,其中显示了 Spring Cloud Gateway 页,页面上包含有关重启网关的确认消息。

将公共终结点分配到 VMware Spring Cloud Gateway

本部分介绍如何将公共参与者分配给 VMware Spring Cloud Gateway 并配置其属性。

若要在 Azure 门户中分配终结点,请使用以下步骤:

  1. 打开 Azure Spring Apps 实例。
  2. 在导航窗格中选择 Spring Cloud Gateway,然后选择“概述”。
  3. 将“分配终结点”设置为“”。

几分钟后,URL 会显示配置的终结点 URL。 保存 URL 供以后使用。

Azure 门户的屏幕截图,其中显示了 Spring Cloud Gateway 概述页,页面上包含用于分配终结点的开关。

配置 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 门户中编辑元数据,请使用以下步骤:

  1. 打开 Azure Spring Apps 实例。
  2. 在导航窗格中选择 Spring Cloud Gateway,然后选择“配置”。
  3. API 列出的属性指定值。
  4. 选择“保存”。

Azure 门户的屏幕截图,其中显示了 Spring Cloud Gateway 配置选项卡,并突出显示了 API 部分。

配置单一登录

VMware Spring Cloud Gateway 支持使用 OpenID 标识提供者通过单一登录 (SSO) 进行身份验证和授权。 提供程序支持 OpenID Connect Discovery 协议。 下表介绍了 SSO 属性:

properties 必需? 说明
issuerUri 被断言为其证书颁发者标识符的 URI。 例如,如果 issuerUrihttps://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 属性,请使用以下步骤:

  1. 打开 Azure Spring Apps 实例。
  2. 在导航窗格中选择 Spring Cloud Gateway,然后选择“配置”。
  3. SSO 列出的属性指定值。
  4. 选择“保存”。

Azure 门户的屏幕截图,其中显示了 Spring Cloud Gateway 配置选项卡,并突出显示了单一登录部分。

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。

以下步骤介绍了如何在微服务中实现函数的示例:

  1. 获取路由配置以将注销请求路由到应用程序。 有关示例,请参阅 GitHub 上的 animal-rescue 存储库中的路由配置。

  2. 向应用程序添加所需的任何注销逻辑。 最后,需要向网关的 /scg-logout 终结点发出 GET 请求,如 animal-rescue 存储库中 getActionButton 方法的 return 值所示。

仅注销 SSO 会话

如果使用 XMLHttpRequestGET 请求发送到 /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 门户中配置证书:

  1. 在 Azure Spring Apps 实例中,选择导航窗格中的 Spring Cloud Gateway
  2. Spring Cloud Gateway 页上,选择“证书管理”。
  3. 选择“启用证书验证”。
  4. 证书中选择 TLS 证书。
  5. 选择“保存”。

更新配置可能需要几分钟。 配置完成后,会收到通知。

准备路由配置

必须在路由配置中将协议指定为 HTTPS。 以下 JSON 对象指示 VMware Spring Cloud Gateway 对网关和应用之间的所有流量使用 HTTPS 协议。

  1. 创建包含以下内容的名为 test-tls-route.json 的文件:

    {
        "routes": [
          {
            "title": "Test TLS app",
            "predicates": [
              "Path=/path/to/your/app",
              "Method=GET"
            ]
          }
         ],
        "uri": "https://<app-custom-domain-name>"
    }
    
  2. 使用以下命令将规则应用于应用:

    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 中的证书:

  1. 从受信任的 CA 生成新证书。
  2. 将证书导入 Azure Spring Apps。 有关详细信息,请参阅在 Azure Spring Apps 的应用程序中使用 TLS/SSL 证书导入证书部分。
  3. 使用 Azure 门户或 Azure CLI 同步证书。

VMware Spring Cloud Gateway 会重启,以确保网关对所有连接使用新证书。

使用以下步骤同步证书:

  1. 在 Azure Spring Apps 实例中,选择导航窗格中的 Spring Cloud Gateway
  2. Spring Cloud Gateway 页上,选择“重启”,然后确认操作。

设置自动缩放设置

可以为 VMware Spring Cloud Gateway 设置自动缩放模式。

以下列表显示了可用于自动缩放需求管理的选项:

  • 手动缩放选项用于维护固定实例计数。 最多可以横向扩展到 10 个实例。 此值会更改 Spring Cloud Gateway 的单独运行实例的数目。
  • 自定义自动缩放选项可根据任意计划、基于任意指标进行扩展。

在 Azure 门户中,选择所需缩放方式。 以下屏幕截图显示“自定义自动缩放”选项和模式设置:

显示“自动缩放设置”页的 Azure 门户的屏幕截图,其中突出显示了“自定义自动缩放”选项。

有关可用指标的信息,请参阅 Azure Spring Apps 指标用户指标选项部分。

配置响应缓存

响应缓存配置提供了一种定义 HTTP 响应缓存的方法,通过使用该方法,可以在全局或路由级别应用该缓存。

在全局级别启用响应缓存

在全局级别启用响应缓存后,系统会自动为所有适用路由启用响应缓存。

使用以下步骤在全局级别启用响应缓存:

  1. 在 Azure Spring Apps 实例中,选择导航窗格中的 Spring Cloud Gateway
  2. 在“Spring Cloud Gateway”页上,选择“配置”。
  3. 在“响应缓存”部分中,选择“启用响应缓存”,然后将“范围”设置为“实例”。
  4. 设置响应缓存的大小生存时间
  5. 选择“保存”。

使用以下步骤禁用响应缓存:

  1. 在 Azure Spring Apps 实例中,选择导航窗格中的 Spring Cloud Gateway
  2. 在“Spring Cloud Gateway”页上,选择“配置”。
  3. 在“响应缓存”部分中,清除“启用响应缓存”。
  4. 选择“保存”。

在路由级别启用响应缓存

若要为任何路由启用响应缓存,请使用 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 过滤器配置 sizetimeToLive。 使用此选项,可以在最初不指定这些值的情况下使用 LocalResponseCache 筛选器,同时保留灵活性,以便在日后重写这些值。

使用以下步骤在路由级别启用响应缓存并设置 sizetimeToLive

  1. 在 Azure Spring Apps 实例中,选择导航窗格中的 Spring Cloud Gateway
  2. 在“Spring Cloud Gateway”页上,选择“配置”。
  3. 在“响应缓存”部分中,选择“启用响应缓存”,然后将“范围”设置为“路由”。
  4. 设置响应缓存的大小生存时间
  5. 选择“保存”。

使用以下步骤在路由级别禁用响应缓存,这将清除 sizetimeToLive

  1. 在 Azure Spring Apps 实例中,选择导航窗格中的 Spring Cloud Gateway
  2. 在“Spring Cloud Gateway”页上,选择“配置”。
  3. 在“响应缓存”部分中,清除“启用响应缓存”。
  4. 选择“保存”。

以下示例展示了在 Spring Cloud Gateway 级别设置 sizetimeToLive 时如何使用 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 门户中配置环境变量,请使用以下步骤:

  1. 在 Azure Spring Apps 实例中,在导航窗格中选择 Spring Cloud Gateway,然后选择“配置”。
  2. 在“属性”和“秘密”部分中填写环境变量的键/值对。 可以在“机密”部分加入具有敏感信息的变量。
  3. 选择“保存”以保存更改。

更新环境变量后,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

有关其他受支持的环境变量,请参阅以下源:

若要在 VMware Spring Cloud Gateway 中启用 APM 监视,可以在服务级别创建 APM 配置并将其绑定到 Spring Cloud Gateway。 这样即可方便地一次性完成 APM 配置,并将相同的 APM 绑定到 Spring Cloud Gateway 和应用程序。

使用以下步骤通过 Azure 门户设置 APM:

  1. 使用 APM 名称、类型和属性在服务实例级别配置 APM。 有关更多信息,请参阅如何配置 APM 集成和 CA 证书在服务实例级别管理 APM(推荐)部分。

    Azure 门户的屏幕截图,其中显示了 Azure Spring Apps APM 编辑器页。

  2. 在导航窗格中选择 Spring Cloud Gateway,然后选择 APM

  3. APM 引用名称列表中选择 APM 名称。 该列表包括步骤 1 中配置的所有 APM 名称。

  4. 选择“保存”,将 APM 引用名称绑定到 Spring Cloud Gateway。 网关将重启以启用 APM 监视。

在 VMware Spring Cloud Gateway 中管理 APM(已弃用)

可以使用 Azure 门户或 Azure CLI 在 VMware Spring Cloud Gateway 中设置 APM。 还可以指定要使用的 APM Java 代理的类型以及它们支持的相应 APM 环境变量。

使用以下步骤通过 Azure 门户设置 APM:

  1. 在 Azure Spring Apps 实例中,在导航窗格中选择 Spring Cloud Gateway,然后选择“配置”。
  2. APM 列表中选择 APM 类型以监视网关。
  3. 在“属性”和“机密”部分中填写 APM 环境变量的键/值对。 可以在机密中加入包含敏感信息的变量。
  4. 选择“保存”以保存更改。

更新配置可能需要几分钟。 配置完成后,会收到通知。

注意

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 的日志级别,以获取更多详细信息或减少日志:

  • 可以将日志级别设置为 TRACEDEBUGINFOWARNERROROFF。 VMware Spring Cloud Gateway 的默认日志级别为 INFO
  • 可以通过将日志级别设置为 OFF 来关闭日志。
  • 日志级别设为 WARNERROROFF 的情况下,在向 Azure Spring Apps 团队请求支持时可能需要将其调整为 INFO。 此更改会导致 VMware Spring Cloud Gateway 重启。
  • 将日志级别设置为 TRACEDEBUG 可能会影响 VMware Spring Cloud Gateway 的性能。 尽量避免在生产环境中进行这些设置。
  • 可以为 root 记录器或特定记录器(例如 io.pivotal.spring.cloud.gateway)设置日志级别。

以下记录器可能包含 TRACEDEBUG 级别的有价值的故障排除信息:

记录器类 说明
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 门户中配置日志级别,请使用以下步骤:

  1. 在 Azure Spring Apps 实例中,在导航窗格中选择 Spring Cloud Gateway,然后选择“配置”。
  2. 在“属性”和“机密”部分中填写日志级别环境变量的键/值对。 如果在你的案例中,日志级别是敏感信息,则可以在“机密”部分加入这些信息。
  3. 选择“保存”以保存更改。

Azure 门户的屏幕截图,其中显示了用于配置日志级别的 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
        • LifecyclePreStop 是在容器即将终止时执行的生命周期挂钩。 通过此挂钩,你可以在容器停止之前执行任何必要的清理。
      • 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)所花费的时间。

使用以下步骤更新加载项配置。

  1. 在 Azure Spring Apps 实例中,在导航窗格中选择 Spring Cloud Gateway,然后选择“配置”。
  2. 指定加载项配置的 JSON 值。
  3. 选择“保存”。

后续步骤