您正在查看的是 Apigee Edge 文档。
转到 Apigee X 文档。 信息
作为当前的 Apigee Edge 客户,您可以选择将安装迁移到 Apigee X,以利用新功能或不同的区域可用性。
本页面介绍了在迁移到 Apigee X 之前需要解决的配置中的反模式,以及迁移之前您应该注意的其他行为变更。
范围更广的 Apigee Edge 反模式列表介绍了在任何情况下都应避免使用的用法。本页面介绍了会阻碍迁移的具体不推荐使用做法。请立即解决这些问题,以防止在迁移到 Apigee X 时出现问题。
未使用 API 产品的应用 | ||||||||||||||
摘要 | 需要对客户端进行更改? | 分辨率 | ||||||||||||
有一些应用没有使用 API 产品。 Apigee Edge 与 Apigee X 之间的区别:
|
不是。 |
解决方案:不包含 API 产品的应用将每个应用凭据与至少一个 API 产品关联。如需详细了解如何执行此操作,请参阅注册应用和管理 API 密钥。 一种简单的方法是为每个应用分配对所有 API 产品的访问权限。此功能相当于 Apigee Edge 的功能。但您的挑战在于,如果您希望采用“最小权限”方法,则需要确定每个应用凭据有权访问的 API 产品的最低列表。您可以根据客户端 ID 使用 Apigee Edge Analytics 报告对此进行分析。 |
||||||||||||
无过期时间的缓存 | ||||||||||||||
摘要 | 需要对客户端进行更改? | 分辨率 | ||||||||||||
缓存没有过期时间。 Apigee Edge 与 Apigee X 之间的区别:
|
否 |
解决方案:缓存无过期时间为所有缓存设置过期时间。 |
||||||||||||
针对非确定路径的 JSONPath 过滤表达式 | ||||||||||||||
摘要 | 需要对客户端进行更改? | 分辨率 | ||||||||||||
对于非确定路径,过滤表达式的结果不在 JSONPath 规范中。请参阅 https://goessner.net/articles/JsonPath/。 Apigee Edge 与 Apigee X 之间的区别: 在浏览此示例结构时 { "books": [ { "name": "A", }, { "name": "B", } ] } 使用
使用
|
是 |
解决方案:针对非确定路径的 JSONPath 过滤器表达式查找并替换受影响的查询。 |
||||||||||||
不存在的索引的 JSONPath 表达式 | ||||||||||||||
摘要 | 需要对客户端进行更改? | 分辨率 | ||||||||||||
具有索引不存在的 JSONPath 表达式在 Apigee X 与 Apigee Edge 中的行为有所不同。如果找不到该路径,Apigee X 会返回 Apigee Edge 与 Apigee X 之间的区别: 在浏览此示例结构时 { "books": [ { "name": "A", }, { "name": "B", } ] } 使用
|
是 |
解决方案:为不存在的索引使用 JSONPath 表达式查找并替换受影响的查询。 |
||||||||||||
包含数组索引的 JSONPath 表达式未返回数组对象 | ||||||||||||||
摘要 | 需要对客户端进行更改? | 分辨率 | ||||||||||||
在 Apigee X 中,具有数组索引或切片的 JSONPath 表达式会返回一个数组对象。 Apigee Edge 与 Apigee X 之间的区别: 在浏览此示例结构时 { "books": [ { "name": "A", }, { "name": "B", } ] } 使用
使用
使用
|
是 |
解决方案:包含数组索引的 JSONPath 表达式未返回数组对象查找并替换在升级后可能返回不同结果的表达式。 |
||||||||||||
密钥库名称限制 |
||||||||||||||
摘要 | 需要对客户端进行更改? | 分辨率 | ||||||||||||
Apigee X 密钥库名称只能包含字母、数字和连字符。边缘密钥库名称不会施加这些限制。 |
否 |
解决方案:密钥库名称限制请检查密钥库名称,并在必要时更新名称以移除不受支持的字符。 |
||||||||||||
为一个 API 代理部署了多个基本路径 |
||||||||||||||
摘要 | 需要对客户端进行更改? | 分辨率 | ||||||||||||
API 代理的多个修订版本会部署在一个环境中,每个修订版本都具有不同的基本路径。 Apigee Edge 与 Apigee X 之间的区别:
|
否 |
解决方案:为 API 代理部署多个基本路径更新所有软件包,以便仅将软件包的一个修订版本部署到环境中,而不考虑基本路径。 |
||||||||||||
不合规的 HTTP 消息 |
||||||||||||||
摘要 | 需要对客户端进行更改? | 分辨率 | ||||||||||||
客户端或 API 代理发送不符合 HTTP 标准的消息(请求或响应)。例如,标头名称无效、某些受限标头中出现重复等。 如果您的 API 执行出现以下一个或多个错误,则无法迁移到 Apigee X:
|
是的,有可能。 |
解决方案:不合规的 HTTP 邮件在迁移到 Apigee X 之前,您必须修复 HTTP 协议中的所有错误。如果错误源自客户端应用,您必须让客户端应用的开发者纠正问题。 |
||||||||||||
OAuth 2.0 令牌到期时间无效 |
||||||||||||||
摘要 | 需要对客户端进行更改? | 分辨率 | ||||||||||||
OAuth 2.0 令牌过期限制超出规定范围。 Apigee Edge 与 Apigee X 之间的区别:
|
否 |
解决方案:OAuth 2.0 令牌到期时间无效
使用 OAuthV2 政策,并在 |
||||||||||||
超出商品限制 |
||||||||||||||
摘要 | 需要对客户端进行更改? | 分辨率 | ||||||||||||
Apigee Edge 的配置不符合定义的产品限制。一些记录在 Apigee Edge 中但未强制执行的产品限制在 Apigee X 上强制执行。 |
否 |
解决方案:已超出产品限制在迁移到 Apigee X 之前,请先更正任何超出产品限制的用量。 |
||||||||||||
带有端点和路径目标连接说明符的 ServiceCallout 政策 |
||||||||||||||
摘要 | 需要对客户端进行更改? | 分辨率 | ||||||||||||
在 ServiceCallout 政策中,
Apigee Edge 记录了此要求,但不强制执行。如果同时使用这两种配置遇到 |
否 |
解决方案:带有端点和路径目标连接说明符的 ServiceCallout 政策
检查 ServiceCallout 政策配置,并消除所有不合规的 |
||||||||||||
目标服务器名称限制 |
||||||||||||||
摘要 | 需要对客户端进行更改? | 分辨率 | ||||||||||||
Apigee X 目标服务器名称只能包含字母、数字、连字符和英文句点。边缘目标服务器名称不会施加这些限制。 |
否 |
解决方案:目标服务器名称限制请检查目标服务器名称,并在必要时更新名称以移除不受支持的字符。 |
||||||||||||
虚拟主机中的试用证书 |
||||||||||||||
摘要 | 需要对客户端进行更改? | 分辨率 | ||||||||||||
一个或多个虚拟主机使用 Apigee 提供的“免费试用”证书。这会使虚拟主机响应 Apigee Edge 与 Apigee X 之间的区别:
|
是 |
解决方案:在虚拟主机中使用试用证书您必须配置自己的网域并适当地预配证书。
任何依赖于 |
||||||||||||
未解析的 DNS |
||||||||||||||
摘要 | 需要对客户端进行更改? | 分辨率 | ||||||||||||
目标端点有无法解析的域名。 Apigee Edge 与 Apigee X 之间的区别:
|
否 |
解决方案:DNS 未解析请使用有效的域名更新目标端点。 |