19.03.01 - 适用于公有云的 Apigee Edge 版本说明

您正在查看 Apigee Edge 文档。
前往 Apigee X 文档
信息

2019 年 12 月 3 日(星期二),我们开始发布此版本的 Apigee Edge 公有云的更新。(原始版本发布于 2019 年 4 月 18 日星期四。)

新功能和最新动态

以下是此版本中的新功能和更新。

问题 ID 组件名称 说明
Apigee 于 2019 年 10 月 1 日开始发布以下更新
110995050 API 运行时

负载均衡 - 更好地控制如何移除发生故障的服务器

为 API 代理配置 负载平衡器时,您可以确定在从负载均衡轮换中移除服务器之前,发生多少次响应失败。响应失败意味着 Apigee 不会收到目标服务器的任何响应。当出现这种情况时,失败计数器会加 1。当 Apigee 确实收到目标的响应时,即使响应为 HTTP 错误(例如 500),也算作目标服务器的响应,并且失败计数器会被重置。为了帮助确保失败计数器在错误的 HTTP 响应(例如 500)下也加 1,以便尽快让运行状况不佳的服务器停止进行负载平衡轮替,您可以将带有 <ResponseCode> 子元素的新 <ServerUnhealthyResponse> 元素添加到您的负载平衡器配置中。 此外,Edge 也会将包含这些代码的响应视为失败。

<HTTPTargetConnection>
  <LoadBalancer>
    <Algorithm>RoundRobin</Algorithm>
    <Server name="target1" />
    <Server name="target2" />
    <ServerUnhealthyResponse>
        <ResponseCode>500</ResponseCode>
        <ResponseCode>502</ResponseCode>
        <ResponseCode>503</ResponseCode>
    </ServerUnhealthyResponse>
    <MaxFailures>5</MaxFailures>
  </LoadBalancer>
</HTTPTargetConnection>
  
  
130416715 安全

AccessControl 政策增强功能

AccessControl 政策用于确定哪些 IP 地址可以调用 API 代理。 该政策中的一个新元素可让 API 开发者更好地控制要评估的 IP 地址。

<IgnoreTrueClientIPHeader>:可选(默认值为 false)。 将此项设置为 true 时,该政策会忽略 True-Client-IP 标头,并根据配置 X-Forwarded-For 评估行为评估 X-Forwarded-For 标头中的 IP 地址。

<AccessControl async="false" continueOnError="false"
    enabled="true" name="Access-Control-1">
    <DisplayName>Access Control-1</DisplayName>
    <IgnoreTrueClientIPHeader>true</IgnoreTrueClientIPHeader>
    ...
</AccessControl>
Apigee 于 2019 年 4 月 18 日发布了以下更新
117558815、
119856499、
110548137、
79526748、
72989449、
70712859、
69049041
API 运行时 JWS 和 JWT
我们添加了新的 JWS 支持政策,并增强了现有的 JWT 政策。

如需了解详情,请参阅这篇社区帖子

122610025 API 运行时 允许 RaiseFault 也设置故障原因和任意变量(与 AssignMessage 中一样)

RaiseFault 政策中新增了两个元素,可使 FaultRules 处理更简洁、更强大。

  • ShortFaultReason 是一个布尔值,设置为 true 时,会将政策名称放入 fault.reason 变量中。
  • AssignVariable(可在 FaultResponse 中使用)可让您将故障响应分配给一个变量,以供 API 代理流中的其他政策使用。
121149811 托管目标 针对托管目标强制执行的限制

现在,系统会强制执行托管目标的限制。如需了解限额详情,请参阅限额

117659213 API 运行时 在 AccessControl 政策中对 IP 范围进行参数化

您现在可以使用消息模板变量在 AccessControl 政策中设置 IP 地址和 CIDR 掩码。例如,如果您想在键值对映射 (KVM) 中存储 IP 地址和掩码,可以从您在 API 代理流中设置的变量中检索这些值。这样,您可以在运行时更轻松地更改 IP 值,而无需更改政策配置。

例如,您不应使用以下命令:

<MatchRule action="DENY">
    <SourceAddress mask="24">198.51.100.1</SourceAddress>
</MatchRule>
     

您可以按如下方式配置政策(假设这些值存储在 KVM 中,并且您使用 KeyValueMapOperations 政策检索这些值并将其分配给此处显示的变量):

<MatchRule action="DENY">
    <SourceAddress mask="{kvm.mask.ref}">{kvm.ip.ref}</SourceAddress>
</MatchRule>
     
113599885 API 监控 API Monitoring 角色

API Monitoring 提供了两个角色:API Monitoring Administrator 和 API Monitoring User,如访问 API Monitoring 中所述。这些功能已于 2018 年 12 月推出。

132256772 API 运行时 向请求添加了 X-Apigee.Message-Timeout 标头

现在,Edge 会将标头 X-Apigee.Message-Timeout 添加到每个请求中。此标头供 Edge 内部使用。不要依赖 API 代理中 X-Apigee.* 标头中的值,因为这些标头不适合客户使用,并且随时可由 Apigee 移除或更改。

78575018 私有云 / OPDK 当有多个网关 pod 时,跳过管理服务器以跳过网关数据存储区注册

已修复的 bug

此版本中修复了以下 Bug。此列表主要供用户检查其支持服务工单中的问题是否已修复,并非旨在为所有用户提供详细信息。

问题 ID 组件名称 说明
Apigee 于 2019 年 12 月 3 日开始发布以下修复
安全修复。
Apigee 于 2019 年 10 月 29 日开始发布以下修复
139381794 管理服务器

处理密钥库删除错误,确保 API 调用不会失败

Apigee 于 2019 年 10 月 1 日开始发布以下修复
140761319 API 运行时

x-apigee.edge.execution.sense.action 始终设置为 null

139091614 API 运行时

在 ResponseCache 政策中,NIOTheread 在执行时未遭到线程池拒绝

131331305 核心服务

Apigee 路由器上的多个日志导出器导致 CPU 使用率过高

136690640 API 运行时

特定组织中出现间歇性 404 错误

140948100 API 运行时

已部署的共享流未在某些消息处理器上执行

Apigee 于 2019 年 9 月 13 日发布了以下修复
132654321 管理服务器 审核日志未显示数据
131246911 管理服务器 对于门户中的开发者电子邮件地址,启用对 *.games、*.asia 等新网域的支持
Apigee 于 2019 年 4 月 18 日发布了以下修复
123844598 管理服务器 删除的应用密钥在超过 24 小时后无法再次导入
123588156 API 运行时 从响应中移除 Content-Length 标头失败,并显示 304 错误
122732400 API 运行时 设置 api.timeout 会替换 io.timeout.millis
122545281 API 运行时 JSON 的 DebugSession 数据掩码应考虑 jsonPayload 为数组的情况
122355807 管理服务器 具有多个角色的用户的权限行为不正确
121393556 API 运行时 x_apigee_fault_code 设置为“org/codehaus/jackson/map/ObjectMapper”
120998548 Edge 界面 错误消息中的错字:Cert is invalid or cannot be not be trusted
120990929 API 运行时 来自 Nginx/Apigee-Router 的 HTTP-413 响应会泄露服务器类型
120799489 API 运行时 将 httpClient 与异步 JavaScript 回调 httpComplete() 搭配使用时,debugsession(跟踪)输出处于静音状态
120794339 API 运行时 组织的漂移 MP
120277011 管理服务器 需要输入验证:如果目标服务器主机名包含 **
119976417 API 监控 API Monitoring 显示代理响应时间过长,而 Google Analytics 显示目标响应时间过长
119947481 API 运行时 在异常情况下,要屏蔽的载荷会以纯文本形式记录
119877164 私有云 / OPDK 路由器生成错误,消息处理器在启用 TLS 的情况下离线

此修复将包含在下一个 Edge for Private Cloud 版本中。

119816218 API 运行时 如果“Expires”标头解析为 0 或负数,响应缓存会忽略该标头
119770242 API 运行时 路由器到 MP 的通信失败导致完全停机:PostClientFlow 中的错误导致无限循环
119443145 管理服务器 当 ProxyEndpoint 被重命名并重新部署时,API 代理返回 404
119260281 API 运行时 “无法解析为字符串 3000.0”日志错误
118743407 管理服务器 Apigee 代理部署时长
118447966 API 运行时 MP 版本 180608_07 下的 JavaScript 调出错误
117549719 API 运行时 请求 URI 与代理基本路径不匹配
117219520 API 运行时 MessageLogging:Syslog 记录器默认使用错误的日期格式,错误地显示毫秒
117116435 API 运行时 JavaScript 文件中的间歇性错误
117091520 API 运行时 消息处理器版本 18.06.08 发布后,JavaCallout 失败
116165318 API 运行时 并发部署同一软件包会导致 RepositoryException
116055025 Configstore 服务 消息处理器在启动后缺少虚拟主机和应用
115614498 API 运行时 需要 OPDK 中的 ILB 支持

此修复将包含在下一个 Edge for Private Cloud 版本中。

113972537 API 运行时 多个 P1 - Trireme 代理中的 Node.js 代码引发 NullPointerException - 500 Internal Server Error
113904969 Apigee 支持 演示组织中 API 代理的删除问题
113554802 API 运行时 验证 SAML 断言失败,并出现 NullPointerException
113315737 管理服务器 由于 Zookeeper 中缺少部署记录,代理部署失败
112767195 API 运行时 访问 KVM 政策时出现间歇性 DataStore 错误
112162179 API 运行时 缓存 JavaScript 对象而不对其进行字符串化可能会导致死锁
111860576 API 运行时 配额政策中缺少错误
111671525 托管目标 来自托管目标的非成功响应代码会触发代理中的故障流程
111523933 扩展程序(连接器) ExtensionCallout 政策缓存问题
111420263 API 运行时 MessageLogging 中的 ConcurrentModification 异常
110843526 管理服务器 用于创建/更新流钩子的管理 API 应验证共享流
110805739 API 运行时 在 CPS 流程中,如果 Reuserefreshtoken 为 true 且未明确设置刷新令牌过期时间,则 TTL 不会设置为 -1
110429629 API 运行时 BasicAuthentication 政策将 request.headers.Authorization 变量发送到 DebugSession
110425503 API 运行时 Nginx 重新加载导致 MP 可用性问题
110311540 API 运行时 MP 关闭时出现 NPE
110161455 API 运行时 AccessEntity 应该使用按应用名称提取的方法,而不是为 CPS 组织提取所有应用
90695522 API 运行时 context.proxyRequest.asForm generates java.lang.ArrayIndexOutOfBoundsException: 1
79734096 管理服务器 代理的审核日志不再按代理进行过滤
78105568 管理服务器 更新已部署的共享流后,共享流部署不会显示在 /org/{org}/sharedflows/{sharedflow}/deployments 管理 API 调用中
77528868 三层桨战船 Trireme 回归:脚本 server.js 已退出,状态代码为 -1:未找到属性 0
73766568 API 运行时 将 170213_02 升级到 171117_01 导致具有 Trireme/Node 目标的代理的延迟时间大幅增加
72710481 API 运行时 CacheServiceImpl/CacheMemoryLimiter NullPointerException
68861063 API 运行时 处理路由器关闭期间的 NPE
68833699 API 运行时 有关 API 代理的信息有时不会从 API 分类树中移除
67377575 托管目标 Node.js 代理中的分析记录与发送给客户的内容不一致
112481174 托管目标 不要因 Turbo 错误而导致代理取消部署失败
117171470 托管目标 修复了无效的 app.yaml 错误消息
67169139 API 运行时 MessageLogging 政策的 syslog 时间戳格式不正确
67165418 API 运行时 即使使用少于许可数量的消息处理器,也会出现有关使用更多消息处理器的许可错误

此修复将包含在下一个 Edge for Private Cloud 版本中。

67165195 API 运行时 ValidateSAMLAssertion 不验证嵌入在签名响应中的断言的签名
66214414 API 运行时 从共享流引用时,currentstep.flowstate 变量始终返回“SHARED_FLOW”
65731656 API 运行时 威胁防护 API 针对同一请求间歇性失败
133197060 API 运行时 从 MP 到目标获取 57 网关超时
110535186 API 运行时 没有 Response 元素的 ServiceCallout 和指向代理的 HTTPTargetConnection:有时不进行调用
132443137 API 运行时 更改消息处理器的行为,以忽略以 X-Apigee-* 开头的标头。因此,您必须重构所有使用 X-Apigee-* 标头的代码,并将这些标头替换为受支持的标头。
125709964 API 运行时 使用 purgeChildEntries 的 invalidateCache 未按预期工作