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

您正在查看的是 Apigee Edge 文档。
转到 Apigee X 文档
信息

2016 年 8 月 30 日,星期二,我们发布了适用于公有云的新版 Apigee Edge。

新功能和更新

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

“分配消息”和“引发故障”中的 JSON 载荷

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

使用此增强功能时,无需采取任何变通措施来确保 JSON 消息格式设置正确无误,而且可以使用大括号指定变量,而不会创建无效的 JSON。例如,以下代码会在 JSON 消息中插入 message.content 的值:

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

如果您使用了变通方案,代码将继续照常运行。您也可以使用 variablePrefix 和 variableSuffix (而不是大括号)来指示变量。

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

从 XML 到 JSON 的政策增强功能

通过以下功能增强了“从 XML 到 JSON”政策。您可以将政策配置为:

  • 在转换过程中将一些 XML 元素视为数组,这会在 JSON 文档中将值置于方括号“[ ]”中。
  • 在最终 JSON 文档中剥离或删除 XML 文档层次结构的级别。

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

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

在 API 产品中定义资源路径时,您可以在资源路径中的多个位置添加通配符。例如,/team/*/invoices/** 允许在 /team 之后使用任何一个值以及 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 调用程序 JAR 版本检查

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

API 代理资源验证

如果您在环境或组织范围内存储 API 代理资源文件(例如 JavaScript 或 Java JAR),验证框架不再需要在代理软件包中也包含 API 代理级别的这些资源以通过验证。现在,资源验证是在部署时(而不是导入时)进行的。(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 上配置的方式相同。但是,Message Logging TLS/SSL 仅支持 TCP 协议。(APIRT-1858)

已修复 Bug

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

问题 ID 说明
SECENG-609 在删除关联的信任库期间或信任库中的有效证书被删除期间,运行时调用不会失败
MGMT-3404 查看/检索 Node.js 日志和部署代理的速度非常缓慢
MGMT-3400 如果执行调用的用户的名字中带有“+”符号,则调用 /userroles Management API 会失败
MGMT-3368 java.lang.ArrayIndexOutOfBoundsException: 1(导入包含 resources/node/resources 目录的 API 代理软件包时)
MGMT-3364 OAuthV2:redirect_uri 检查
MGMT-3319 列出保险柜中其中一个条目具有 null 值的条目不适用于组织(CPS 和非 CPS)
MGMT-3226 在组织/环境级别进行查询不应拉取导致 API 失败的所有数据
Release_160302 存在一个 bug:当资源的累计大小超过 16MB 时,无法列出组织级别/环境级别的资源,此修复会解决此问题。
AXAPP-2429 使用 request_status_code 的 Google Analytics(分析)API 返回数据访问错误
AXAPP-2386 解决 Google Analytics(分析)每日电子邮件报告中空白的报告内容的问题
AXAPP-2347 未收到每日分析摘要电子邮件
APIRT-3141 在调用新的 ExecutionResult() 时,Java 调用程序会失败,因为构造函数已变为私有状态
APIRT-3140 ServiceCallout 政策在 HEAD API 调用中不起作用
APIRT-3131 通过外部身份验证提供方创收时,API 代理的 createdBy 不正确
APIRT-3121 对组织资源文件做出的更改并非 100% 有效
APIRT-3117 MP 的 CPU 利用率达到 100% 并停止处理流量
APIRT-3016 部署中的路由器“调用超时”错误
APIRT-2975 上传证书文件包失败
APIRT-2955 无法遮盖 FHIR-complaint Content-Type 标头“application/json+fhir”的 JSON 响应数据的某些属性
APIRT-2946 OAuthV2-RefreshToken 政策,即使 display 设置为 false 也不隐藏属性
APIRT-2908 在虚拟主机上更新 TLS1.2 后,必须为内部 API 调用强制使用 TLS1.2
APIRT-2901 从缓存返回的经过压缩的响应被双重压缩
APIRT-2873 删除产品/开发者/代理后,MP 会抛出与 VerifyAPIKey 相关的 NullPointerException
APIRT-2871 IO 密集型政策在 Trace 中出现两次
APIRT-2825 访问令牌错误响应中的语法错误
APIRT-2750 特定组织中的流量失败情况较高
APIRT-2685 抛出未知错误,流量无法流动
APIRT-2647 nonprod/dev 出现“底层输入流返回零字节”错误
APIRT-2630 尝试从缓存读取值时出现间歇性问题
APIRT-2620 为某些阻塞性步骤单独的线程池
APIRT-2610 具有响应缓存政策的 java.lang.ClassCastException
APIRT-2608 响应缓存政策中的 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 在创建会话的超时后,DEBUG c网址 调用未停止
APIRT-1495 XML 威胁防护未捕获到 Content-Type
APIRT-347 XSL 政策在导入时未得到正确验证(不按照记录的那样将结果分配给输出变量)