4.16.05 - 用于私有云的 Edge 版本说明

您正在查看 Apigee Edge 文档。
请查看 Apigee X 文档

2016 年 5 月 31 日(星期二),我们发布了新版 Apigee Edge,适用于私有云。

自上一个 Private Cloud 功能版本 (4.16.01) 推出以来,以下版本已推出,并将包含在本功能版本中:

请参阅关于版本编号,了解如何确定特定 Cloud 版本是否包含在您的私有云 Edge 版本中。

新功能和增强功能

以下是此版本中的新功能和增强功能。除了以下增强功能之外,此版本还包含多项易用性、性能、安全性和稳定性增强功能。

如需更多详细信息和说明,请参阅“适用于私有云的 Edge”文档。

安装和运营指南已转至线上

您现在可以访问 Edge for Private Cloud 安装和操作指南(4.18.01 版)。

软件更新

此版本包含以下软件更新:

  • Java JDK 1.8 - 为了充分利用最新的 Java 功能,此版本与 Java 1.8 兼容。您的环境中需要 Oracle JDK 1.8 或 OpenJDK 8。
    在 Java 8 更新过程中,部分 TLS 加密算法在 Oracle JDK 1.8 中不再可用。 如需查看完整列表,请参阅“默认停用的加密套件”部分 http://docs.oracle.com/javase/8/docs/technotes/guides/security/SunProviders.html
  • Cassandra 2.1.13 - 从 Cassandra 2.0.15 更新。

安装、升级、回滚

下面列出了对安装、升级和相关脚本的更改。如需了解使用相关信息,请参阅“适用于私有云的 Edge”文档。

  • 从 4.16.01 开始更新的新进程 - 此版本将 apigee-migrate 实用程序替换为 update.sh 实用程序,以将您的安装从 4.16.01 更新为 4.16.05。请参阅将 Apigee Edge 4.16.01 更新为 4.16.05
  • 引导加载程序
    • bootstrap.sh(4.16.01 版本)现在为 4.16.05 中的 bootstrap_4.16.05.sh
    • 您无需再指定 uname:pword 即可下载 bootstrap_4.16.05.sh
  • 回滚 - 要将操作回滚到 4.16.05,您需要卸载 4.16.05 版本的组件,然后重新安装之前的版本。移除了之前的 rollback.sh 实用程序。请参阅 4.16.05 回滚过程
  • setup.shupdate.sh 可以将日志文件写入 /tmp - 默认情况下,setup.shupdate.sh 实用程序会将日志信息写入 /opt/apigee/var/log/apigee-setup。如果运行该实用程序的用户无法访问该目录,它会将日志写入 /tmp 目录。 如果用户无权访问 /tmp,则实用程序会失败。
  • API BaaS 更新过程 - 在 4.16.01 版本中,您必须重新安装 API BaaS 才能进行迁移。新的 update.sh 实用程序支持就地更新 API BaaS。请参阅将 Apigee Edge 4.16.01 更新为 4.16.05

管理

以下是私有云管理和配置的新功能。

  • 安装验证 - 现在可以从管理服务器运行用于测试 Edge Private Cloud 安装的 apigee-validate 实用程序。以前,您需要在消息处理器上运行脚本。请参阅测试安装
  • 地区名称 - 地区可以是任何名称。在以前的版本中,名称采用“dc-#”形式,其中 # 是整数值。
  • 网关 pod - 网关 pod 可以具有任何名称。在以前的版本中,该 Pod 必须命名为“网关”。
  • 基于脚本的管理 - 新的 apigee-adminapi.sh 命令行实用程序可让您执行与调用 Edge Management API 相同的边缘配置任务。请参阅使用 apigee-adminapi.sh 实用程序
  • 虚拟主机 SSL 静默配置 - 创建组织或环境时,您现在可以传递属性以在虚拟主机上配置 SSL。请参阅对组织进行初始配置

API 服务

以下是在先前的云端产品中提供的 Edge API 服务的新功能。

syslog 消息日志记录的固定长度前缀 (Cloud 16.03.30)

消息日志记录政策在 Syslog 配置中新增了一个 <FormatMessage> 元素。通过设置 <FormatMessage>true</FormatMessage>,Syslog 消息会以固定数量的字符开头,让您能够过滤掉 Apigee 插入的数据。如需了解详情,请参阅消息日志记录政策。(APIRT-1398)

API 代理基本路径中的通配符(Cloud 16.03.09 界面)

管理界面支持在 API 代理基本路径中使用一个或多个 /*/ 通配符。例如,基准路径 /team/*/members 允许客户端使用 https://[host]/team/blue/membershttps://[host]/team/green/members 来调用代理,而无需创建新的代理来支持新团队。请注意,不允许使用 /**/。(MGMT-3154)

API 代理链(Cloud 16.03.02、Cloud 16.03.09 界面)

Edge 支持本地 API 代理链,这使得一个 API 代理可以调用部署在 Edge 组织中的另一个 API 代理,而不会产生额外的网络开销。以前,API 代理链接需要对另一个 API 代理进行 http 调用,该代理通过负载平衡器、路由器和消息处理器转发请求。

API 代理的 TargetEndpoint 上提供了新的 LocalTargetConnection 元素,允许您指定 API 代理名称、API 代理中特定 ProxyEndpoint 的名称,或仅指定本地 API 代理资源(例如 /v1/myresource)的基本路径。在您添加或更新 TargetEndpoint 时,代理编辑器界面还提供了这些选项。

代理链接也适用于服务宣传信息政策。

如需了解详情,请参阅将 API 代理链接在一起。XML 架构中也列出了新的 LocalTargetConnection 元素:https://github.com/apigee/api-platform-samples/blob/master/schemas/configuration/configuration_schemas.xsd。(MGMT-3049、MGMT-3050)

已修复 Bug

此版本中修复了以下 Bug。此列表主要适用于查看支持服务工单是否已解决的用户。它并非旨在为所有用户提供详细信息。

适用于私有云 4.16.05 的 Edge

问题 ID 说明
PRC-770 16.01 安装程序无法在 axgroup 中注册 Postgres 备用服务器
PRC-758 拥有“用户角色”的用户能够修改自定义报告
PRC-883 具有主备用配置的 Postgres 服务器更新失败

Cloud 16.03.30

问题 ID 说明
SEC-EN-584 对证书链中的证书进行换行符的验证检查会导致生产环境中的某些证书出现问题
MGMT-3217 如果 KVMap 名称以“keys”结尾,Management API 调用会失败
MGMT-3214 Java 附加宣传信息发生类冲突时,客户的 Java 代码会失败
MGMT-3185 向组织添加组织管理员时出错
EDGEUI-127 使用新代理编辑器时权限不足
EDGEUI-119 界面会话超时问题
CORESERV-671 看到“未配置任何响铃环境;无法初始化 cps 服务”错误
AXAPP-2345 为非 CP 客户列出 AX 自定义报告时出现的问题
AXAPP-2302 在开发者采用率方面,Apigee 每日数据分析摘要显示为零
APIRT2750 特定组织内的流量较高
APIRT2516 JavaScript 宣传信息中的运行时错误指定了错误的行号
APIRT2508 在保险柜回调中调用 Express 监听时退出错误
APIRT-2336 Node.js 的 Gzip 问题
API 1975 年 遮盖配置不适用于 message.content

Cloud 16.03.16 界面

问题 ID 说明
MGMT-3142 错误分析信息中心无法加载图表(更新后的修复方案)

Cloud 16.03.09 界面

问题 ID 说明
MGMT-3158 通过 API 设置单个代理的 RBAC 时,界面中的权限不足
MGMT-3142 错误分析信息中心内未加载图表
MGMT-3118 界面显示“clientAuthEnabled”参数的 SSL 虚拟主机配置不正确
开发者 2344 单日报告定义不会加载界面中的交易

Cloud 16.03.02

问题 ID 说明
MGMT-3083 Node.js 日志自动刷新对于日志消息来说过于冗长
开发者 2275 自定义特性费率方案仅显示 5 个特性,而非 10 个特性
开发者 1275 “费率方案”下拉菜单中并未显示所有开发者
开发者 1074 应用余额时,余额为零的预付款开发者会抛出 NullpointerException

Cloud 16.02.17

问题 ID 说明
MGMT-3083 Node.js 日志自动刷新对于日志消息来说过于冗长
MGMT-3077 界面从使用默认命名空间的 WSDL 生成了无效的代理软件包
MGMT-1642 自定义用户角色缺少开发者应用的“获取”权限

已知问题

此版本存在以下已知问题。

问题 ID 说明
APIRT2978

路由器无法启动 Nginx 或路由器无法启动

如果边缘路由器无法启动 Nginx 或无法启动(如 /opt/apigee/var/log/edge-router/logs/system.log 文件中所示),则删除 /opt/nginx/conf.d 目录中的所有文件并重启路由器:

> rm -f /opt/nginx/conf.d/*
> /opt/apigee/apigee-service/bin/apigee-service edge-router restart
APIRT-3364

消息处理器在 IPv4 和 IPv6 上执行 DNS 查找

如果您已安装并启用 NSCD(名称服务缓存守护程序),您可能会注意到消息处理器会进行两次 DNS 查找:一个用于 IPv4,另一个用于 IPv6。

如需在 IPv6 上停用 DNS 查找,请执行以下操作:

  1. 在每个消息处理器节点上,修改 /etc/nscd.conf
  2. 设置以下属性:

    enable-cache host no
PRC-1118

运行“apigee-service apigee-postgresql pg-data-purge”命令时出错

如果您运行“apigee-service apigee-postgresql pg-data-purge”命令,并看到如下形式的错误:

错误:必须是关系的所有者

修改 /opt/apigee/apigee-postgresql-4.16.05-0.0.894/lib/actions/pg-data-purge,并将以下属性设置为“apigee”:

POSTGRES_USER=apigee

DOC-1687 由于已知的软件包依赖项冲突,卫星服务器 6 中使用的 Katello 代理将无法在运行 Qpid 守护程序的 Apigee Edge 主机上正确安装。

“分配消息、Java 宣传信息”和“提出故障”政策中的 JSON 载荷

通过“分配消息”“Java 宣传信息”和“引发故障”政策,您可以使用 <Set><Payload> 元素生成消息内容。作为消息的一部分,您可以添加在运行时在运行时自动填充其值的变量。例如,如果要从 HTTP 标头输出日期,您可以在消息中插入 {message.header.date}

如果消息格式为 JSON,则如下所示:

{"The date is: " : "{message.header.date}"}

但是,您会发现 JSON 存在格式错误。如要解决此问题,您有以下两种选择:

  • 用反斜杠转义左花括号:
    \{"The date is: " : "{message.header.date}"}
    
  • 在载荷元素配置中,使用 variablePrefixvariableSuffix 属性指示 JSON 载荷中的变量。例如:
    <Payload contentType="application/json" variablePrefix="#" variableSuffix="%">{"The date is: " : "#message.header.date%"}</Payload>
    

在下一个适用于私有云功能版本的 Edge 中,您将能够对 JSON 消息中的变量使用大括号,而又不会出现问题。(APIRT-1160)

路由器无法启动 Nginx,或者路由器无法启动

如果边缘路由器无法启动 Nginx 或根本无法启动(如 /opt/apigee/var/log/edge-router/logs/system.log 文件中所示),则删除 /opt/nginx/conf.d 目录中的所有文件,并重启路由器:

> rm -f /opt/nginx/conf.d/*
> /opt/apigee/apigee-service/bin/apigee-service edge-router restart