16.08.17 - 适用于公有云的 Apigee Edge 版本说明

您正在查看 Apigee Edge 文档。
前往 Apigee X 文档
信息

2016 年 8 月 30 日(星期二),我们发布了新版 Apigee Edge for Public Cloud。

新功能和更新

以下是此版本中的新功能和更新:

Assign Message 和 Raise Fault 中的 JSON 载荷

使用“分配消息”或“引发故障”政策设置 JSON 载荷时,用户有时需要使用解决方法来确保 JSON 消息在运行时格式正确,例如以反斜杠“\”开头,或在 Payload 元素上指定 variablePrefix 和 variableSuffix,即使消息中未使用任何变量也是如此。

通过此增强功能,无需任何解决方法即可确保 JSON 消息格式正确,并且可以使用大括号指定变量,而不会创建无效的 JSON。例如,以下代码会将 JSON 消息中 message.content 的值插入到数据库中:

<Payload contentType="application/json">{"message" : "{message.content}"}</Payload>

如果您使用了解决方法,您的代码将继续正常运行。您还可以使用 variablePrefix 和 variableSuffix 而不是大括号来表示变量。

请参阅分配消息政策Raise Fault 政策参考文档中的 <Set><Payload> 元素。(APIRT-1160)

XML 到 JSON 政策增强功能

XML 到 JSON 政策已增强,具有以下功能。您可以配置政策,以实现以下目的:

  • 在转换期间将某些 XML 元素视为数组,这会将值放在 JSON 文档的方括号“[]”中。
  • 在最终 JSON 文档中剥离或消除 XML 文档层次结构级别。

如需了解详情,请参阅 XML 到 JSON 政策。(APIRT-1144)

API 产品资源路径中的多个通配符

在 API 产品中定义资源路径时,您可以在资源路径中的多个位置添加通配符。例如,/team/*/invoices/** 允许在 /team 之后包含任意一个值的 API 调用,以及在 invoices/ 之后包含任意资源路径的 API 调用。API 调用中允许的 URI 为 proxyBasePath/team/finance/invoices/company/a

如果在此版本发布后,您现有的 API 产品资源路径无法按预期运行,请在组织中设置以下属性以恢复到之前的行为:features.enableStandardWildCardMatchForAPIProductResources = true

(MGMT-3273)

JavaScript 中的加密函数

一组新的高性能 JavaScript crypto 函数可用于创建、获取和更新以下哈希对象:MD5、SHA-1、SHA256、SHA512。 您还可以使用 crypto 对象以各种格式获取日期。如需了解详情,请参阅 JavaScript 对象模型。 (APIRT-2886)

Java Callout JAR 版本检查

如果 Java 资源的版本与 Edge 支持的 Java 版本(列在支持的软件和支持的版本中)不兼容,则在将 Java JAR 资源上传到 API 代理时,系统会返回 HTTP 400 状态代码(而不是 500)。(MGMT-3420)

API 代理资源验证

如果您在环境或组织范围内存储了 API 代理资源文件(例如 JavaScript 或 Java JAR),验证框架不再要求您在代理软件包中也包含这些资源,以便导入通过验证。资源验证现在在部署时进行,而不是在导入时进行。(MGMT-1430)

配置单个 API 代理的超时

您可以配置 API 代理,使其在指定时间后超时并返回 504 网关超时状态。主要用例是对于执行时间较长的 API 代理,Private Cloud 客户可以设置此属性。例如,假设您需要特定代理在 3 分钟后超时。您可以在 API 代理的配置中使用新的 api.timeout 属性。以下示例展示了如何使用 3 分钟的示例来完成此操作:

  1. 首先,确保将负载平衡器、路由器和消息处理器配置为在 3 分钟后超时。
  2. 然后,将相关代理配置为在 3 分钟后超时。以毫秒为单位指定该值。例如:
    <ProxyEndpoint name="default">
      <HTTPProxyConnection>
        <BasePath>/v1/weather</BasePath>
        <Properties>
          <!-- api.timeout is in milliseconeds -->
          <Property name="api.timeout">180000</Property>
        </Properties>
        ...
  3. 但请注意,增加系统超时可能会导致性能问题,因为所有不具有 api.timeout 设置的代理都会使用新的、更长的负载平衡器、路由器和消息处理器超时。因此,请将无需更长超时的其他 API 代理配置为使用较短的超时。例如,以下命令将 API 代理设置为在 1 分钟后超时:
    <Property name="api.timeout">60000</Property>

无法修改 Edge 超时的 Cloud 客户也可以配置 API 代理超时,前提条件是超时短于标准的 Edge 消息处理器超时,即 57 秒。

您无法使用变量填充值。此属性已在端点属性参考文档中介绍。(APIRT-1778)

消息日志记录政策的 TLS/SSL

可以在消息日志记录政策SSLInfo 配置中设置 <KeyStore><TrustStore>,从而允许使用日志记录服务进行单向和双向 TLS/SSL。您可以在消息日志记录政策中配置 SSLInfo,方式与在代理 TargetEndpoint 中相同。不过,消息日志记录 TLS/SSL 仅支持 TCP 协议。 (APIRT-1858)

已修复 Bug

此版本中修复了以下 Bug。此列表主要供用户检查其支持服务工单中的问题是否已修复,并非旨在为所有用户提供详细信息。

问题 ID 说明
SECENG-609 在删除关联的信任库期间或删除信任库中的有效证书时,运行时调用不会失败
MGMT-3404 查看/检索 Node.js 日志和部署代理非常缓慢
MGMT-3400 如果进行调用的用户的名称中包含“+”号,则对 /userroles 管理 API 的调用会失败
MGMT-3368 导入包含 resources/node/resources 目录的 API 代理软件包时,出现 java.lang.ArrayIndexOutOfBoundsException: 1
MGMT-3364 OAuthV2:redirect_uri 检查
MGMT-3319 对于组织(CPS 和非 CPS),保险库中某个条目具有 null 值的列表条目不起作用
MGMT-3226 在组织/环境级别进行查询时不应拉取所有数据,以免导致 API 失败
Release_160302 存在一个 bug,如果资源的总大小超过 16MB,则在组织级/环境级列出资源会失败,此修复程序解决了该问题。
AXAPP-2429 使用 response_status_code 的 Analytics API 返回数据访问错误
AXAPP-2386 修复了分析每日电子邮件报告中的空白报告内容
AXAPP-2347 收不到每日分析摘要电子邮件
APIRT-3141 调用新的 ExecutionResult() 时,Java Callout 失败,因为构造函数已设为私有
APIRT-3140 ServiceCallout 政策在 HEAD API 调用中不起作用
APIRT-3131 将创收功能与外部身份验证提供方搭配使用时,API 代理的 createdBy 显示不正确
APIRT-3121 组织资源文件更改未完全生效
APIRT-3117 MP 达到 100% CPU 利用率并停止处理流量
APIRT-3016 部署中的“调用超时”路由器错误
APIRT-2975 上传证书包失败
APIRT-2955 无法遮盖符合 FHIR 标准的 Content-Type 标头“application/json+fhir”的 JSON 响应数据的某些属性
APIRT-2946 即使显示设置为 false,OAuthV2-RefreshToken 政策也不会隐藏属性
APIRT-2908 在虚拟主机上更新 TLS1.2 后,必须强制执行内部 API 调用的 TLS1.2
APIRT-2901 从缓存返回的 Gzip 压缩响应会被双重压缩
APIRT-2873 在删除产品/开发者/代理后,MP 会抛出与 VerifyAPIKey 相关的 NullPointerException
APIRT-2871 IOIntensive 政策在 Trace 中显示两次
APIRT-2825 访问令牌错误响应中的语法错误
APIRT-2750 特定组织的流量失败次数较多
APIRT-2685 由于抛出未知错误,流量无法流动
APIRT-2647 非正式版/开发版中出现“底层输入流返回了零字节”错误
APIRT-2630 尝试从缓存读取值时出现间歇性问题
APIRT-2620 为某些阻塞步骤使用单独的线程池
APIRT-2610 使用 ResponseCache 政策时出现 java.lang.ClassCastException
APIRT-2608 Response Cache 政策中的 Last-Modified 标头解析错误
APIRT-2605 不应允许通过政策覆盖“组织”和“环境”变量
APIRT-2566 OAuthV2 政策返回格式错误的 WWW-Authenticate 标头
APIRT-2491 由于管理与 mps 之间的 RPC 超时,TargetServer 更新失败
APIRT-2386 在“允许的 OAuth 范围”为空的 API 产品中创建空字符串范围
APIRT-2383 XSL 转换政策在发生错误时似乎不会记录任何数据
APIRT-2364 OAuth 故障流程变量在出错时未更新
APIRT-2216 服务器发送的事件 - 生产环境中的事件流存在问题
APIRT-2079 调试 c网址 调用在创建的会话超时过期后未停止
APIRT-1495 XML 威胁防范未捕获 fhir Content-Type
APIRT-347 导入时未正确验证 XSL 政策(未按文档所述将结果分配给输出变量)