Apigee 的已知问题
您正在查看 Apigee Edge 文档。
转到 Apigee X 文档。 信息
以下各部分介绍了 Apigee 的已知问题。在大多数情况下,列出的问题会在未来的版本中更正。
Miscellaneous Edge 已知问题
以下部分介绍了 Edge 的其他已知问题。
领域 |
已知问题 |
缓存过期导致 cachehit 值不正确 |
如果在 LookupCache 政策之后使用 cachehit 流变量,由于为异步行为分派调试点的方式,LookupPolicy 会在执行回调之前填充 DebugInfo 对象,从而导致错误。
权宜解决方法:在第一次调用后立即再次重复该过程(进行第二次调用)。
|
将 InvalidateCache 政策 PurgeChildEntries 设置为 true 无法正常工作 |
在 InvalidateCache 政策中设置 PurgeChildEntries 应仅完全清除 KeyFragment 元素值,但会清除整个缓存。
权宜解决方法:使用 KeyValueMapOperations 政策迭代缓存版本控制,并避免缓存失效。
|
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 。
|
SAML 身份提供方 |
自定义网域不支持使用 SAML 身份提供方的单点登录 (SLO)。如需启用具有 SAML 身份提供方的自定义网域,请在配置 SAML 设置时将退出网址字段留空。 |
门户管理员 |
- 目前不支持多用户同时进行门户更新(例如页面、主题背景、CSS 或脚本修改)。
- 如果您从门户中删除 API 参考文档页面,则无法重新创建该页面;您需要删除然后重新添加 API 产品,再重新生成 API 参考文档。
- 配置内容安全政策时,所做更改最长可能需要 15 分钟才能完全应用。
- 自定义门户主题背景时,更改最多可能需要 5 分钟才能完全生效。
|
门户功能 |
|
适用于私有云的 Edge 的已知问题
以下部分介绍了适用于私有云的 Edge 的已知问题。
区 |
已知问题 |
OPDK 4.52.01 Mint 更新 |
此问题仅影响那些使用 MINT 或在 Edge 中启用了 MINT 以安装私有云的用户。
受影响的组件:Edge-message-processor
问题:如果您已启用创收功能,并且作为全新安装版本或者从以前的 Private Cloud 版本升级来安装 4.52.01,则会遇到消息处理器方面的问题。开放线程数量将逐渐增加,从而导致资源耗尽。Edge-message-processor system.log 中会出现以下异常:
Error injecting constructor, java.lang.OutOfMemoryError: unable to create new native thread
|
Apigee HTTP/2 漏洞
| 最近,在 Google 的
HTTP/2 协议 (CVE-2023-44487) 的实现,包括在 Apigee Edge 中
Private Cloud此漏洞可能会导致 Apigee API 管理功能的 DoS 攻击。
如需了解详情,请参阅 Apigee 安全公告 GCP-2023-032。
Private Cloud 路由器和管理服务器组件将向
因此可能容易受到攻击虽然在管理控制台上启用了 HTTP/2
其他 Edge 专用组件(适用于私有云的)的端口,这些组件
向互联网公开在 Cassandra、Zookeeper 等非 Edge 组件上,
未启用 HTTP/2。我们建议您
采取以下步骤,以解决 Private Cloud 的 Edge 漏洞:
如果您使用的是 Edge 私有云 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
| 从适用于私有云的 Edge 升级 Apigee-postgresql 时出现问题
从 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 之前执行初步步骤。
|
apigee-mirror (在 RHEL 8.0 上) |
apigee-mirror 不适用于 Red Hat Enterprise Linux (RHEL) 8.0。
权宜解决方法:
如需解决此问题,请在运行较低版本的服务器上安装 apigee-mirror
RHEL 或其他
支持
操作系统。然后,您可以使用镜像
即使您在 RHEL 8.0 服务器上安装了 Apigee,也可以添加软件包。
|
LDAP 政策 |
149245401:通过
LDAP 资源
且 JNDI 默认值每次都会造成一次性连接。
因此,会打开相应连接
而且每次都是为了一次性关闭
每秒连接到 LDAP 服务器的连接数。
临时解决方法:
要更改 LDAP 连接池属性,请执行以下操作:
按以下步骤设置针对所有 LDAP 政策的全局更改。
- 如果配置属性文件尚不存在,请创建一个:
/opt/apigee/customer/application/message-processor.properties
- 将以下内容添加到文件中(将
Java 命名和目录接口 (JNDI) 属性
(基于 LDAP 资源配置要求)。
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 代理。症状包括处理时间比正常情况多 200-300 毫秒
API 响应
并且即使 TPS 较低,也可能会随机发生。如果超过 50 个目标值,就会出现这种情况
消息处理器进行连接的服务器。
根本原因:
消息处理器保留一个缓存,用于将目标服务器网址映射到 HTTPClient 对象
到目标服务器的传出连接。默认情况下,这一设置设为 50
对大多数部署而言都太低如果部署在一个设置中包含多个组织/环境组合,
并且拥有大量超过 50 个的目标服务器,那么目标服务器网址
不断从缓存中逐出,从而导致延迟。
验证:
要确定目标服务器网址逐出是否会导致延迟问题,请在
消息处理器 system.logs
对于关键字“onEvict”或“逐出”。如果它们显示在日志中,则表明目标服务器网址
因为缓存大小太小而将被逐出 HTTPClient 缓存。
权宜解决方法:
对于适用于私有云的 Edge 版本 19.01 和 19.06,您可以修改和配置 HTTPClient
缓存,/opt/apigee/customer/application/message-processor.properties :
conf/http.properties+HTTPClient.dynamic.cache.elements.size=500
然后重启消息处理器。对所有消息处理器进行相同的更改。
例如,值 500 就是一个示例。设置的最佳值应大于
消息处理器将连接的目标服务器的数量。没有一面
效果
将此属性设置得更高,唯一的影响就是消息处理器得到改进
代理请求处理时间。
注意:私有云的 Edge 版本 50.00 的默认设置是 500。
|
键值对映射有多个条目 |
157933959:对作用域限定为
组织或环境级别会导致数据不一致和更新丢失。
注意:此限制仅适用于适用于私有云的 Edge。适用于公有云的 Edge
和“混合”则没有此限制
如需解决适用于私有云的 Edge 中的解决方案,请在以下位置创建 KVM:
apiproxy 范围。
|
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-09-20。
[[["易于理解","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):2024-09-20。"],[],[]]