您正在查看 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 表达式 | ||||||||||||||||||||||||
| 摘要 | 是否需要进行客户端更改? | 解决方法 | ||||||||||||||||||||||
|
在 Apigee X 中,具有不存在的索引的 JSONPath 表达式的行为与在 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 密钥库名称只能包含字母、数字和连字符。 Edge 密钥库名称不受这些限制的约束。 |
否 |
解决方案:密钥库名称限制检查密钥库名称,并根据需要更新名称以移除不支持的字符。 |
||||||||||||||||||||||
为 API 代理部署的多个基本路径 |
||||||||||||||||||||||||
| 摘要 | 是否需要进行客户端更改? | 解决方法 | ||||||||||||||||||||||
|
在环境中部署了 API 代理的多个修订版本,并且每个修订版本都有不同的基本路径。 Apigee Edge 与 Apigee X 之间的区别:
|
否 |
解决方案:为 API 代理部署多个基本路径更新所有软件包,以便无论基本路径如何,都只将一个软件包修订版本部署到环境。 |
||||||||||||||||||||||
不合规的 HTTP 消息 |
||||||||||||||||||||||||
| 摘要 | 是否需要进行客户端更改? | 解决方法 | ||||||||||||||||||||||
|
客户端或 API 代理发送的消息(请求或响应)不符合 HTTP 标准。例如,标头名称无效、某些受限标头中存在重复项等。 如果您的 API 执行存在以下一项或多项错误,则无法迁移到 Apigee X:
|
是,可能会。 |
解决方案:不合规的 HTTP 消息您必须先修正 HTTP 协议中的所有错误,然后才能迁移到 Apigee X。如果错误源自客户端应用,您必须要求客户端应用的开发者更正问题。 |
||||||||||||||||||||||
OAuth 2.0 令牌到期时间无效 |
||||||||||||||||||||||||
| 摘要 | 是否需要进行客户端更改? | 解决方法 | ||||||||||||||||||||||
|
OAuth 2.0 令牌过期限制超出规定范围。 Apigee Edge 与 Apigee X 之间的区别:
|
否 |
解决方案:OAuth 2.0 令牌到期时间无效
使用 OAuthV2 政策,并在 |
||||||||||||||||||||||
已超出商品数量上限 |
||||||||||||||||||||||||
| 摘要 | 是否需要进行客户端更改? | 解决方法 | ||||||||||||||||||||||
|
Apigee Edge 的配置不符合已定义的产品限制。Apigee X 会强制执行 Apigee Edge 上记录但未强制执行的某些产品限制。 |
否 |
解决方法:超出商品限额在迁移到 Apigee X 之前,请修正任何超出产品限制的使用情况。 |
||||||||||||||||||||||
同时具有端点和路径目标连接说明符的 ServiceCallout 政策 |
||||||||||||||||||||||||
| 摘要 | 是否需要进行客户端更改? | 解决方法 | ||||||||||||||||||||||
|
在 ServiceCallout 政策中,
Apigee Edge 记录了此要求,但并未强制执行。如果 Apigee X 遇到同时包含这两种配置的 |
否 |
解决方案:同时具有端点和路径目标连接说明符的 ServiceCallout 政策
检查 ServiceCallout 政策配置,并消除任何不合规的 |
||||||||||||||||||||||
目标服务器名称限制 |
||||||||||||||||||||||||
| 摘要 | 是否需要进行客户端更改? | 解决方法 | ||||||||||||||||||||||
|
Apigee X 目标服务器名称只能包含字母、数字、连字符和英文句点。 边缘目标服务器名称不受这些限制的约束。 |
否 |
解决方案:目标服务器名称限制检查目标服务器名称,并根据需要更新名称以移除不支持的字符。 |
||||||||||||||||||||||
虚拟主机中的试用证书 |
||||||||||||||||||||||||
| 摘要 | 是否需要进行客户端更改? | 解决方法 | ||||||||||||||||||||||
|
一个或多个虚拟主机使用了 Apigee 提供的“免费试用”证书。这会导致虚拟主机响应 Apigee Edge 与 Apigee X 之间的区别:
|
是 |
解决方案:虚拟主机中的试用证书您必须配置自己的网域,并适当预配证书。
任何依赖于 |
||||||||||||||||||||||
未解析的 DNS |
||||||||||||||||||||||||
| 摘要 | 是否需要进行客户端更改? | 解决方法 | ||||||||||||||||||||||
|
目标端点存在未解析的域名。 Apigee Edge 与 Apigee X 之间的区别:
|
否 |
解决方法:未解析的 DNS使用有效域名更新目标端点。 |
||||||||||||||||||||||