Apigee 的已知问题
您正在查看 Apigee Edge 文档。
前往 Apigee X 文档。 信息
以下各部分介绍了 Apigee 的已知问题。在大多数情况下,列出的问题会在未来的版本中更正。
其他 Edge 已知问题
以下各部分介绍了 Edge 的各种已知问题。
区域/摘要 |
已知问题 |
缓存过期导致 cachehit 值不正确 |
在 LookupCache 政策之后使用 cachehit 流变量时,由于调试点为异步行为分派的方式,LookupPolicy 会在回调执行之前填充 DebugInfo 对象,从而导致错误。
解决方法:在第一次通话后立即重复此过程(进行第二次通话)。
|
将 InvalidateCache 政策 PurgeChildEntries 设置为 true 不起作用 |
在 InvalidateCache 政策中设置 PurgeChildEntries 应仅清除 KeyFragment 元素值,但会清除整个缓存。
解决方法:使用 KeyValueMapOperations 政策迭代缓存版本,从而无需进行缓存失效。
|
对 SharedFlow 或 API 代理的并发部署请求可能会导致管理服务器中出现不一致的状态,其中多个修订显示为已部署。
|
例如,当使用不同修订版本实现 CI/CD 部署流水线的并发运行时,可能会发生这种情况。为避免此问题,请避免在当前部署完成之前部署 API 代理或 SharedFlow。
解决方法:避免并发 API 代理或 SharedFlow 部署。
|
Edge API Analytics 中显示的 API 调用次数可能包含重复数据。
|
Edge API Analytics 有时可能会包含 API 调用的重复数据。在这种情况下,Edge API Analytics 中显示的 API 调用次数高于第三方分析工具中显示的类似值。
解决方法:导出 Google Analytics 数据,然后使用 gateway_flow_id 字段删除数据中的重复项。
|
Edge 界面的已知问题
以下几个部分介绍了 Edge 界面的已知问题。
集成式门户的已知问题
以下各部分介绍了集成式门户的已知问题。
区 |
已知问题 |
SmartDocs |
- 虽然在您的门户上使用 SmartDocs 使用规范编辑器创建规范和发布 API 时,Apigee Edge 支持 OpenAPI 规范 3.0,但还有一小部分功能得不到支持。
例如,OpenAPI 规范 3.0 的以下功能不受支持:
如果 OpenAPI 规范中引用了不受支持的功能,则在某些情况下,工具会忽略该功能,但仍呈现 API 参考文档。在其他情况下,不受支持的功能将导致错误,进而导致 API 参考文档无法成功呈现。无论哪种情况,您都需要修改 OpenAPI 规范,以避免使用不受支持的功能,直到将来的版本支持它为止。
注意:由于规范编辑器在呈现 API 参考文档时比 SmartDocs 的限制更少,因此您可能会在使用这两种工具时获得不同的结果。
- 在门户中使用“试用此 API”时,无论如何设置 OpenAPI 规范中
consumes 的值,Accept 标头都设置为 application/json 。
- 138438484:不支持
多个服务器。
|
SAML 身份提供方 |
自定义网域不支持具有 SAML 身份提供商的单一退出 (SLO)。如需通过 SAML 身份提供商启用自定义网域,请在配置 SAML 设置时将退出网址字段留空。 |
门户管理员 |
- 目前不支持多用户同时进行门户更新(例如页面、主题背景、CSS 或脚本修改)。
- 如果您从门户中删除 API 参考文档页面,则无法重新创建该页面;您需要删除然后重新添加 API 产品,再重新生成 API 参考文档。
- 配置内容安全政策时,更改最多可能需要 15 分钟才能完全生效。
- 自定义门户主题背景时,更改最多可能需要 5 分钟才能完全生效。
|
门户功能 |
|
Edge for Private Cloud 的已知问题
以下各部分介绍了 Edge for Private Cloud 的已知问题。
Edge for Private Cloud 4.53.00
|
412696630:启动时无法加载密钥库
edge-message-processor 组件可能会在启动时间歇性地无法加载一个或多个密钥库,导致 API 代理使用密钥库时出现流量错误。
重新启动 edge-message-processor 组件通常可以解决此问题。
|
Edge for Private Cloud 4.53.00
|
Java Callout
尝试使用名称“BC”加载 Bouncy Castle 加密提供程序的客户 Java 回调可能会失败,因为默认提供程序已更改为 Bouncy Castle FIPS 以支持 FIPS。要使用的新提供程序名称为 “BCFIPS”。
|
Edge for Private Cloud 4.52.01 Mint 更新
|
此问题仅影响在 Edge for Private Cloud 安装中使用 MINT 或已启用 MINT 的用户。
受影响的组件:edge-message-processor
问题:如果您已启用创收功能,并且要全新安装 4.52.01 或从之前的 Private Cloud 版本升级,则会遇到消息处理器问题。打开的线程数会逐渐增加,最终导致资源耗尽。在 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 或更高版本,请按以下步骤操作:
更新管理服务器:
- 在每个管理服务器节点上,打开
/opt/apigee/customer/application/management-server.properties
- 将以下代码行添加到属性文件中:
conf_webserver_http2.enabled=false
- 重启管理服务器组件:
apigee-service edge-management-server restart
更新消息处理器:
- 在每个消息处理器节点上,打开
/opt/apigee/customer/application/message-processor.properties
- 将以下代码行添加到属性文件中:
conf_webserver_http2.enabled=false
- 重启消息处理器组件:
apigee-service edge-message-processor restart
更新路由器:
- 在每个路由器节点上,打开
/opt/apigee/customer/application/router.properties
- 将以下代码行添加到属性文件中:
conf_webserver_http2.enabled=false
- 重启消息处理器组件:
apigee-service edge-router restart
更新 QPID:
- 在每个 QPID 节点上,打开
/opt/apigee/customer/application/qpid-server.properties
- 将以下代码行添加到属性文件中:
conf_webserver_http2.enabled=false
- 重启消息处理器组件:
apigee-service edge-qpid-server restart
更新 Postgres:
- 在每个 Postgres 节点上,打开
/opt/apigee/customer/application/postgres-server.properties
- 将以下代码行添加到属性文件中:
conf_webserver_http2.enabled=false
- 重启消息处理器组件:
apigee-service edge-postgres-server restart
如果您使用的是低于 4.51.00.11 的 Edge for Private Cloud 版本,请按以下步骤操作:
更新管理服务器:
- 在每个管理服务器节点上,打开
/opt/apigee/customer/application/management-server.properties
- 将以下两行添加到属性文件中:
conf_webserver_http2.enabled=false
conf/webserver.properties+http2.enabled=false
- 重启管理服务器组件:
apigee-service edge-management-server restart
更新消息处理器:
- 在每个消息处理器节点上,打开
/opt/apigee/customer/application/message-processor.properties
- 将以下两行添加到属性文件中:
conf_webserver_http2.enabled=false
conf/webserver.properties+http2.enabled=false
- 重启消息处理器组件:
apigee-service edge-message-processor restart
更新路由器:
- 在每个路由器节点上,打开
/opt/apigee/customer/application/router.properties
- 将以下两行添加到属性文件中:
conf_webserver_http2.enabled=false
conf/webserver.properties+http2.enabled=false
- 重启消息处理器组件:
apigee-service edge-router restart
更新 QPID:
- 在每个 QPID 节点上,打开
/opt/apigee/customer/application/qpid-server.properties
- 将以下两行添加到属性文件中:
conf_webserver_http2.enabled=false
conf/webserver.properties+http2.enabled=false
- 重启消息处理器组件:
apigee-service edge-qpid-server restart
更新 Postgres:
- 在每个 Postgres 节点上,打开
/opt/apigee/customer/application/postgres-server.properties
- 将以下两行添加到属性文件中:
conf_webserver_http2.enabled=false
conf/webserver.properties+http2.enabled=false
- 重启消息处理器组件:
apigee-service edge-postgres-server restart
|
更新到版本 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 政策中设置全局更改。
- 如果配置属性文件尚不存在,请创建一个:
/opt/apigee/customer/application/message-processor.properties
- 将以下内容添加到该文件中(根据您的 LDAP 资源配置要求替换 Java 命名和目录接口 [JNDI] 属性的值)。
bin_setenv_ext_jvm_opts="-Dcom.sun.jndi.ldap.connect.pool.maxsize=20
-Dcom.sun.jndi.ldap.connect.pool.prefsize=2
-Dcom.sun.jndi.ldap.connect.pool.initsize=2
-Dcom.sun.jndi.ldap.connect.pool.timeout=120000
-Dcom.sun.jndi.ldap.connect.pool.protocol=ssl"
- 确保文件
/opt/apigee/customer/application/message-processor.properties 的所有者为 apigee:apigee。
- 重启每个消息处理器。
如需验证连接池 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 缓存,/opt/apigee/customer/application/message-processor.properties :
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 中的解决方法,请在 apiproxy 范围内创建 KVM。
|
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-07-19。
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["没有我需要的信息","missingTheInformationINeed","thumb-down"],["太复杂/步骤太多","tooComplicatedTooManySteps","thumb-down"],["内容需要更新","outOfDate","thumb-down"],["翻译问题","translationIssue","thumb-down"],["示例/代码问题","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2025-07-19。"],[],[]]