您正在查看 Apigee Edge 文档。
前往 Apigee X 文档。 信息
以下各部分介绍了 Apigee 的已知问题。在大多数情况下,列出的问题会在未来的版本中更正。
其他 Edge 已知问题
以下各部分介绍了 Edge 的各种已知问题。
领域 | 已知问题 |
---|---|
缓存过期导致 cachehit 值不正确 |
在 LookupCache 政策之后使用 解决方法:在第一次通话后立即重复此过程(进行第二次通话)。 |
将 InvalidateCache 政策 PurgeChildEntries 设置为 true 不起作用 |
在 InvalidateCache 政策中设置 解决方法:使用 KeyValueMapOperations 政策迭代缓存版本,从而无需进行缓存失效。 |
对 SharedFlow 或 API 代理的并发部署请求可能会导致管理服务器中出现不一致的状态,其中多个修订显示为已部署。 |
例如,当使用不同修订版本实现 CI/CD 部署流水线的并发运行时,可能会发生这种情况。为避免此问题,请避免在当前部署完成之前部署 API 代理或 SharedFlow。 解决方法:避免并发 API 代理或 SharedFlow 部署。 |
Edge 界面的已知问题
以下几个部分介绍了 Edge 界面的已知问题。
领域 | 已知问题 |
---|---|
在将组织映射到身份区域后,无法通过导航栏访问 Edge SSO 区域管理页面 | 将组织连接到身份区域后,您无法再通过选择“管理”>“SSO”从左侧导航栏访问 Edge SSO 区域管理页面。如需解决此问题,请使用以下网址直接导航至页面:https://apigee.com/sso |
集成式门户的已知问题
以下各部分介绍了集成式门户的已知问题。
区 | 已知问题 |
---|---|
SmartDocs |
|
SAML 身份提供方 | 自定义网域不支持具有 SAML 身份提供商的单一退出 (SLO)。如需通过 SAML 身份提供商启用自定义网域,请在配置 SAML 设置时将退出网址字段留空。 |
门户管理员 | |
门户功能 |
|
Edge for Private Cloud 的已知问题
以下各部分介绍了 Edge for Private Cloud 的已知问题。
领域 | 已知问题 |
---|
Edge for Private Cloud 4.52.02 和 4.53.00 |
使用 SetOauthV2Info 政策时,如果 AccessToken 无法解析为变量或为 null,该政策会导致数据存储错误: { "fault": { "faultstring": "Error while accessing datastore;Please retry later", "detail": { "errorcode": "datastore.ErrorWhileAccessingDataStore" } } } 此行为与早期 Apigee 版本不同,在早期版本中,此类场景会触发 { "fault": { "faultstring": "Invalid Access Token", "detail": { "errorcode": "keymanagement.service.invalid_access_token" } } }
为缓解此问题,请向代理添加 RaiseFault 政策,以模拟旧版错误消息。当访问令牌变量为 null 时,可以执行此 RaiseFault 政策。请参见下面的示例: <!-- Sample Raise Fault Policy ---> <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <RaiseFault async="false" continueOnError="false" enabled="true" name="RaiseFault-MissingAccessToken"> <DisplayName>RaiseFault-MissingAccessToken</DisplayName> <Properties/> <FaultResponse> <Set> <Headers/> <Payload contentType="application/json">{"fault":{"faultstring":"Invalid Access Token","detail":{"errorcode":"keymanagement.service.invalid_access_token"}}}</Payload> <StatusCode>500</StatusCode> <ReasonPhrase>Internal Server Error</ReasonPhrase> </Set> </FaultResponse> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> </RaiseFault> 您可以在代理流中的 SetOauthV2Info 政策前有条件地添加 RaiseFault 政策,如以下示例所示:
<Step> <!-- Execute RaiseFault policy if access_token flow variable is null --> <Condition>access_token = null</Condition> <Name>RaiseFault-MissingAccessToken</Name> </Step> <Step> <!-- Execute SetOAuthV2Info policy if access_token flow variable is null --> <Condition>access_token != null</Condition> <Name>SetOAuthV2Info</Name> </Step> Apigee 将发布一个补丁,以恢复 Edge for Private Cloud 4.52.02 和 4.53.00 版本中的上述行为。 |
Edge for Private Cloud 4.52.02 更新 |
当您将 Edge for Private Cloud 从 4.51.00、4.52.00 或 4.52.01 更新到 4.52.02 时,运行时和管理 API 可能会受到进一步影响。 这种影响会在 Cassandra 节点更新后出现,并会持续到所有消息处理器和管理服务器节点都更新完毕为止。 发生这种情况时,以下某个方面可能会受到影响:
Apigee 将发布针对 Edge for Private Cloud 4.52.02 的修订版更新文档,其中解决了此问题。 |
Edge for Private Cloud 4.52.01 Mint 更新 |
此问题仅影响使用 MINT 或在 Edge for Private Cloud 安装中启用了 MINT 的用户。 受影响的组件:edge-message-processor 问题:如果您已启用创收功能,并以全新安装的方式安装 4.52.01 或从旧版私有云升级,则会遇到消息处理器问题。打开的线程数会逐渐增加,导致资源耗尽。edge-message-processor system.log 中显示以下异常: Error injecting constructor, java.lang.OutOfMemoryError: unable to create new native thread |
Apigee HTTP/2 漏洞 | 最近在 HTTP/2 协议的多个实现中发现了拒绝服务 (DoS) 漏洞 (CVE-2023-44487),包括 Apigee Edge for Private Cloud。该漏洞可能会导致 Apigee API 管理功能遭受 DoS 攻击。如需了解详情,请参阅 Apigee 安全公告 GCP-2023-032。 Edge for Private Cloud 路由器和管理服务器组件会向互联网公开,因此可能容易受到攻击。虽然 Edge for Private Cloud 的其他 Edge 专用组件的管理端口上启用了 HTTP/2,但这些组件都不会向互联网公开。在非 Edge 组件(如 Cassandra、Zookeeper 等)上,未启用 HTTP/2。我们建议您采取以下步骤来解决 Edge for Private Cloud 漏洞: 如果您使用的是 Edge Private Cloud 4.51.00.11 或更高版本,请按以下步骤操作:
如果您使用的是低于 4.51.00.11 的 Edge for Private Cloud 版本,请按以下步骤操作:
|
更新到版本 4.52 时升级 Postgresql | Apigee-postgresql 在从 Edge for Private Cloud 4.50 或 4.51 升级到 4.52 时遇到问题。这些问题主要出现在表数量超过 500 时。 您可以通过运行以下 SQL 查询来检查 Postgres 中的表总数: select count(*) from information_schema.tables 解决方法: 将 Apigee Edge 4.50.00 或 4.51.00 升级到 4.52.00时,请务必先执行 预处理步骤,然后再升级 Apigee-postgresql。 |
LDAP 政策 | 149245401:通过 LDAP 资源配置的 JNDI 的 LDAP 连接池设置未反映,并且 JNDI 默认设置会导致每次都建立一次性连接。 因此,每次都会打开和关闭连接以供单次使用,从而每小时与 LDAP 服务器建立大量连接。 临时解决方法: 如需更改 LDAP 连接池属性,请按以下步骤在所有 LDAP 政策中设置全局更改。
如需验证您的连接池 JNDI 属性是否生效,您可以执行 tcpdump 来观察 LDAP 连接池在一段时间内的行为。 |
请求处理延迟时间过高 | 139051927:消息处理器中发现的代理处理延迟时间过长,影响了所有 API 代理。症状包括处理时间比正常 API 响应时间延迟 200-300 毫秒,即使 TPS 较低,也可能会随机发生。如果消息处理器建立的目标服务器超过 50 个,就可能会出现这种情况。 根本原因:消息处理程序会保留一个缓存,用于将目标服务器网址映射到 HTTPClient 对象,以便与目标服务器建立出站连接。默认情况下,此设置设为 50,对于大多数部署而言可能过低。如果部署在设置中包含多个组织/环境组合,并且目标服务器数量总计超过 50 个,则目标服务器网址会不断被从缓存中驱逐,从而导致延迟。 验证:如需确定目标服务器网址驱逐是否导致了延迟问题,请在消息处理器 system.logs 中搜索关键字“onEvict”或“Eviction”。如果日志中存在这些错误,则表示目标服务器网址因缓存大小过小而被从 HTTPClient 缓存中驱逐。 解决方法:对于 Edge for Private Cloud 版本 19.01 和 19.06,您可以修改和配置 HTTPClient 缓存 conf/http.properties+HTTPClient.dynamic.cache.elements.size=500 然后,重启消息处理器。对所有消息处理器进行相同的更改。 例如,值为 500。设置的最佳值应大于消息处理器要连接到的目标服务器数量。将此属性设置得更高不会产生任何副作用,唯一的影响是消息处理器代理请求处理时间会缩短。
注意:Edge for Private Cloud 50.00 版的默认设置为 500。 |
键值对映射的多个条目 | 157933959:对范围限定为组织级别或环境级别的同一键值对映射 (KVM) 进行并发插入和更新会导致数据不一致和更新丢失。 注意:此限制仅适用于 Edge for Private Cloud。Edge for Public Cloud 和 Hybrid 没有此限制。 如需在 Edge for Private Cloud 中使用权宜解决方法,请在 |