4.17.01 - Edge for Private Cloud 版本说明

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

2017 年 1 月 25 日(星期三),我们发布了适用于私有云的新版本 Apigee Edge。

自上一个 Private Cloud 功能版本 Edge 以来,此功能版本包含以下版本:

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

版本概览

此版本包含一些重要功能,可帮助您更好地控制和保护 API。

借助共享流和流钩子,您可以跨多个 API 代理创建一组可重复使用的政策和行为。

键值对映射 (KVM) 之前已成为用于长期保留键值对的 Edge 功能,现在可加密以提高数据安全。

为了更灵活地控制开发者对 API 的访问权限,边缘管理界面提供了用于创建和管理 API 密钥和密文(凭据)、撤消开发者应用和停用开发者的更多选项。借助这些增强功能,您可以更轻松地实现 API 密钥轮替等策略,还能通过撤消开发者应用(其所有密钥均已停用)或停用开发者(开发者的所有应用和密钥均已停用)来停用多个 API 密钥。

在弃用之前,“创收限制”功能已经停用。

本主题的其余部分详细介绍了此版本中包含的所有新功能、更新和 bug 修复。

弃用和停用

以下功能在此版本中已弃用或停用。如需了解详情,请参阅边缘弃用政策

已弃用:创收限制(Cloud 16.10.26 界面)

创收限制功能已从管理界面中移除(管理 > 限制)。如需了解详情,包括改用什么方法,请参阅弃用通知:http://docs.apigee.com/monetization/content/limit-feature-deprecation-notice。 (DEVRT-3259)

移除了对 RedHat/CentOS 6.5 版本的支持

如果您目前使用的是 RedHat/CentOS 6.5,则必须将操作系统更新到 6.6 或更高版本,然后再更新到 Edge 4.17.01。

新功能和更新

以下是此版本中的新功能和增强功能。除了以下增强功能之外,此版本还在易用性、性能、安全性和稳定性方面进行了多项改进。

如需更多详细信息和说明,请参阅 Edge for Private Cloud 文档。

私有云

您可以在用户首次访问 Edge 界面时显示意见征求横幅。意见征求横幅会显示 HTML 格式的文本和一个按钮,用户可选择该按钮以继续登录登录屏幕。如需了解详情,请参阅启用意见征求横幅

API BaaS 支持多个数据中心

您现在可以在多个数据中心中安装 API BaaS。如需了解详情,请参阅 API BaaS 的多数据中心安装

新增了 API BaaS 安装配置参数

API BaaS 配置文件中新增了两个配置参数:

  • BAAS_CASS_DC_LIST - 指定 BaaS 数据中心的区域名称。对于单个数据中心,请指定与 BAAS_CASS_LOCALDC 相同的值。
  • BAAS_CLUSTER_SEEDS - 指定用于定义 BaaS 集群种子的 BaaS 堆栈节点。

如需了解详情,请参阅将 Apigee Edge 4.16.09 更新为 4.17.01

不再针对 API BaaS 使用 apigee-service 命令运行“部署”选项

API BaaS 堆栈和门户不再支持 apigee-service 命令的 deploy 选项。这时,您可以改用 configurerestart 选项。 如需了解详情,请参阅 API BaaS 安装

API BaaS 的新端口要求

所有 BaaS 堆栈节点现在都必须打开端口 2551,以便从其他堆栈节点访问。如果您有多个 BaaS 数据中心,则必须可从所有数据中心的所有堆栈节点访问该端口。

如需了解详情,请参阅 API BaaS 安装安装要求

开发者服务门户现在使用 Postgres 作为数据库,使用 Nginx 作为网络服务器

对于所有新安装,该门户均使用 Postgres 而不是 MySQL 和 MariaDB 作为其数据库。从以前的版本升级到 4.17.01 的客户将继续使用 MySQL 或 MariaDB。

新安装 4.17.01 版时,也会安装 Nginx 作为网络服务器。从以前的版本升级到 4.17.01 的客户继续使用 Apache。

开发者服务门户不再默认启用 SmartDocs

您必须在门户上启用 SmartDocs。如需详细了解 SmartDocs,请参阅使用 SmartDocs 编写 API 文档

开发者服务门户现已通过 RPM 安装

4.17.01 版开发者服务门户使用与 Edge 和 API BaaS 相同的代码库和工具从 RPM 安装。如需了解详情,请参阅开发者服务门户安装

基于 RPM 的安装和基于 .tar 的更新程序使用不同的组件:

基于 RPM 的安装

基于.tar 的安装

Web 服务器

Nginx

Apache

Web 根目录

/opt/apigee/apigee-drupal

/var/www/html

Port(端口)

8079

80

数据库

PostgreSQL

MySQL

PHP

php-fpm(FastCGI)

mod_php(使用 Apache 时)

Qpid 已升级到版本 1.35

此版本包含 Qpid 版本 1.35。

Cassandra 已升级到版本 2.1.16

此版本包含 Cassandra 版本 2.1.16。

Play 已升级至版本 2.4

此版本包含 Play 2.4 界面框架。

添加了对 RedHat/CentOS 7.3 版本的支持

Edge 现在支持 RedHat/CentOS 7.3 版。

Beta 版 Monitoring 信息中心更新

Edge Monitoring 信息中心 Beta 版已更新为:

  • 新增了 Cassandra、Zookeeper、OpenLDAP、Postgres 和 Qpid 的信息中心。
  • 将 4.16.09 中的 Influx 版本从 0.11 升级到了 1.0.2。
  • 添加了多项稳定性修复。

如需了解详情,请参阅 Apigee Monitoring 信息中心 Beta 版概览

现在可以在安装配置文件中设置 Postgres 密码

使用 PG_PWD 属性在安装配置文件中设置 Postgres 密码。 如需了解详情,请参阅边缘配置文件参考

启用 EPEL 代码库

您必须启用适用于企业 Linux(或 EPEL)的额外软件包才能安装或更新 Edge。如需了解详情,请参阅安装要求

您使用的命令取决于您的 RedHat/CentOS 版本:

  • 对于 RedHat/CentOS 7.x:
    > wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm; rpm -ivh epel-release-latest-7.noarch.rpm
  • 对于 RedHat/CentOS 6.x:
    wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm; rpm -ivh epel-release-latest-6.noarch.rpm

使用 NSCD(名称服务缓存守护程序)时,在 IPv6 上停用 DNS 查找

如果您已安装并启用 NSCD(名称服务缓存守护程序),消息处理器会进行两次 DNS 查找:一次用于 IPv4,另一次用于 IPv6。使用 NSCD 时,您必须停用对 IPv6 的 DNS 查找。如需了解详情,请参阅安装要求

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

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

API 服务

用于实现 API 代理的共享流和流钩子 (Cloud 16.09.21)

新的“共享流”功能可让您实现 API 代理中的功能。通过将条件化政策和资源合并到共享流中,您可以从任何 API 代理引用该流,以执行可重复使用的单一来源逻辑。例如,共享流可以验证 API 密钥、防止激增,以及记录数据。

您可以在管理界面(API > 共享流)中定义共享流,然后通过两种不同方式引用它们:

  • 在 API 代理中使用新的数据流调用方政策
  • 在名为 Flow Hooks 的新工件中,该工件位于以下位置:

    通过这些连接点,您可以在单个代理的主要流程点之前或之后执行操作逻辑。您可以在管理界面中将共享流分配给这些流钩子位置(API > 环境配置 > 流钩子)。

    • 请求:ProxyEndpoint PreFlow 之前、TargetEndpoint PostFlow 之后
    • 响应:在 TargetEndpoint PreFlow 之前、ProxyEndpoint PostFlow 之后

如需了解详情,请参阅可重复使用的共享流使用流钩子附加共享流

加密的键值对映射 (Cloud 16.09.21)

您可以创建加密的键值对映射 (KVM) 来存储敏感信息,例如凭据或个人身份信息/HIPAA 数据。此功能与现有的 Edge 安全存储(保险柜)不同,旨在取代该功能,因为保险柜值只能使用 Node.js(以及 Management API)来访问。您可以使用 Node.js 或键值对映射操作政策访问加密的 KVM 值。

创建加密 KVM

  • 使用现有的 KVM 管理 API。如果您在创建 KVM 时在载荷定义中添加 “encrypted”: “true”,Edge 会生成一个与 KVM 具有相同范围的加密密钥,并使用该密钥加密 KVM。
  • 您无法使用键值对映射操作政策来创建加密的 KVM。您必须先使用 KVM 管理 API 创建加密的 KVM,然后才能在政策中使用该 KVM。
  • 您无法加密现有的未加密 KVM。

使用加密 KVM

  • 使用键值对映射操作政策可获取和更新加密的 KVM 值。
  • 获取加密密钥值时,请在变量前面添加关键字“private”来保存该值。例如 <Get assignTo="private.secretVar">。该 private.secretVar 变量保存解密后的值。
  • 使用政策更新值时,您无需执行任何特殊操作。该值将在加密的 KVM 中自动加密。
  • 您还可以使用 Node.js 代码中的 apigee-access 模块访问解密的值。使用函数 getKeyValueMap(),根据名称和范围检索 KVM。返回的对象提供了两个函数:getKeys(callback) 用于获取键名数组,而 get(key, callback) 用于获取特定键的值。例如,以下命令会获取作用域为 apiproxy 的名为 VerySecureKVM 的 KVM,并检索 key1 的加密值:
    var apigee = require('apigee-access');
      var encryptedKVM = apigee.getKeyValueMap('VerySecureKVM', 'apiproxy'); 
      encryptedKVM.get('key1', function(err, secretValue) { 
      // use the secret value here 
    });
    

如需了解详情,请参阅使用键值对映射在 Node.js 中访问键值对映射

(APIRT-1197)

在界面中创建加密的键值对映射(16.10.26 界面)

在管理界面(API > 环境配置 > 键值对映射)中创建环境范围的键值对映射 (KVM) 时,可以通过新的 Encrypted 复选框创建加密的 KVM。向 KVM 添加密钥后,加密值在管理界面中显示为星号 (*****)。向加密 KVM 添加键/值的方法与为未加密 KVM 添加键/值完全一样。Cloud 版本 160921 中提供了对加密 KVM 的完整后端支持。(EDGEUI-764)

API 代理元数据中包含的 OpenAPI 规范网址 (Cloud 16.09.21)

当您根据 OpenAPI 规范创建 API 代理时,OpenAPI 规范的位置会存储在 API 代理元数据中。例如,如果您使用 Management API 获取代理修订版本的详细信息,则元数据将包含采用以下格式的 OpenAPI 规范路径:

"spec" : "https://raw.githubusercontent.com/apigee/api-platform-samples/master/default-proxies/helloworld/openapi/mocktarget.yaml"

此增强功能支持下一代 Edge,将 OpenAPI 规范链接到新的开发者门户中的 API 代理、API 产品和 API 参考文档。(MGMT-2913)

为 SOAP 代理生成 OpenAPI 规范(Cloud 16.10.05 界面)

当您基于 WSDL 创建“REST to SOAP to REST”代理时,Edge 会根据代理资源自动生成托管的 OpenAPI 规范。您可以通过 http(s)://[edge_domain]/[proxy_base_path]/openapi.json 访问该规范。但是,转换并非总是准确,因为并非所有 XML 架构的规则都可以在 OpenAPI 规范中表示。(EDGEUI-718)

适用于直通式 SOAP 代理的边缘托管的 WSDL(Cloud 16.10.05 界面)

当您基于 WSDL 创建“直通式 SOAP”代理时,Edge 会托管 WSDL 并在代理中创建流,以便您可以访问该代理。您可以通过 http(s)://[edge_domain]/[proxy_base_path]?wsdl 访问托管的 WSDL,这是通过代理调用 SOAP 服务的客户端的新服务端点网址。(EDGEUI-718)

API 代理向导中的新示例股票报价 WSDL (Cloud 16.08.24.01)

使用 API 代理向导创建 SOAP 服务 API 时,可以在示例 https://ws.cdyne.com/delayedstockquote/delayedstockquote.asmx?WSDL 中使用替换股票报价 WSDL。 (EDGEUI-655)

开发者服务

界面中的开发者应用管理优势(Cloud 16.10.05 界面)

通过一系列增强功能,边缘界面中的开发者应用管理变得更加强大:

  • 您可以在新的“应用状态”字段中撤消和批准应用(在修改模式下)。在查看模式下,该字段还会显示当前的应用状态。如果应用被撤消,那么该应用的所有 API 密钥均对 API 调用无效。密钥本身不会被撤消,并且在开发者重新获得批准后仍可使用。当应用处于已撤消状态时,API 密钥的“已批准”标签以带删除线的文本形式显示。
  • API 密钥的到期日期现在会显示在“开发者应用详情”页面上,密钥的到期日期会显示在“凭据”部分中。例如,无失效日期的密钥与其关联的 API 产品显示在一个群组中,而过期天数为 90 天后的密钥显示在另一个群组中及其关联产品。您无法更改现有凭据的失效时间。
  • 借助开发者应用修改模式下的新“添加凭据”按钮,您可以生成具有特定过期时间或日期(或没有过期时间)的 API 密钥。在创建凭据后(或之后),您可以向其中添加 API 产品。
    此功能取代了“开发者应用详情”页面上的“重新生成密钥”按钮。该按钮已移除。

这些增强功能增加了 Management API 中已有的功能。(EDGEUI-104)

在界面中启用/停用应用开发者(Cloud 16.10.05 界面)

您可以在 Edge 界面中更改应用开发者的状态(“开发者详细信息”页面、修改模式、“启用/停用”按钮)。当开发者处于非活跃状态时,她的开发者应用 API 密钥或使用这些密钥生成的 OAuth 令牌在对 API 代理的调用中均无效。(EDGEUI-304)

界面中的非活跃开发者指示器(16.10.26 UI)

如果应用开发者的状态被设为“无效”,那么即使其应用和凭据会保持“已批准”状态,其应用和凭据也会不再有效。现在,在管理界面中查看处于非活跃状态的开发者的应用和凭据时,应用和凭据上的“已批准”状态标签将以带删除线的文本形式显示,并且将鼠标悬停在标签上时会指示开发者处于不活跃状态。如果开发者恢复为“活跃”,那么已批准的应用和凭据将再次有效,并且“已批准”标签上带删除线的文本会被移除。 (EDGEUI-728)

分析服务

“错误代码分析”信息中心已重命名(16.10.26 界面)

“错误分析”信息中心已更名为“错误代码分析”。信息中心包含 HTTP 状态代码为 4xx 和 5xx 的 API 调用。(EDGEUI-738)

代理信息中心内的 TPS 数据(16.10.26 界面)

平均每秒事务数(“平均 TPS”)数据已添加到代理流量主信息中心。此外,当您将鼠标悬停在代理流量图表和代理性能图表上的各个数据点上时,提示中会显示相应时间间隔的 TPS。(EDGEUI-668)

Analytics 错误显示(16.10.26 界面)

当分析信息中心收到 500 错误时,无论错误如何,管理界面都会显示“报告超时”。为了提供更好的问题排查功能,界面现在会显示实际错误。(EDGEUI-753)

已修复 Bug

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

Edge for Private Cloud 4.17.01

问题 ID 说明
APIBAAS-1990 当 smtp.auth 为 false 时,API BaaS 堆栈不再尝试向 SMTP 进行身份验证
APIRT-3032

现在,运行“apigee-service baas-usergrid restart”命令也会运行“configure”

您无需再针对 BaaS 堆栈运行“apigee-service baas-usergrid configure”,然后针对 BaaS 堆栈运行“apigee-service baas-usergrid restart”。

APIRT-3032

如果主机名是 IP 地址,不执行 DNS 查找。

DOS-4070

“apigee-all -version”现在会显示 Edge-mint-* RPM 的版本

DOS-4359

添加了“pdb”选项,以便仅安装 Postgres 数据库。

仅在安装开发者服务门户时使用。 请参阅开发者服务门户安装

Cloud 16.10.26(界面)

问题 ID 说明
EDGEUI-768 使用 StockQuote WSDL 创建代理时失败

云 16.09.21_9

问题 ID 说明
MGMT-3674 无法为支持 HIPAA 法案的组织创建加密的 KVM 或保险柜
MGMT-3647 如果用户的电子邮件访问权限采用大写形式,则会抛出 403

Cloud 16.09.21

问题 ID 说明
APIRT-3507 JavaScript 服务出价邀约出现间歇性错误(例如 SNI 错误)
APIRT-3408 MP 版本 160817 apigee-access 分析模块,以不同方式处理消息
APIRT-3390

刷新访问令牌政策返回的故障响应的变化

APIRT-3389
APIRT-3381 客户生产代理的延迟时间较长
APIRT-3366 所有新的试用组织中的 JavaScript 政策均失败
APIRT-3363 无效网址解析通过 ApplicationNotFound 返回 500 状态
APIRT-3356 “OAuth 令牌无效”消息
APIRT-3355 OAuth 代理出现间歇性 403 错误
APIRT-3285
APIRT-3261 对照生产环境中的其他开发应用验证凭据
APIRT-3234 Node.js 应用返回 NPE
APIRT-3223 Apigee 过时缓存问题
APIRT-3193 迁移到 ASG 后,Node.js 目标服务器挂起
APIRT-3152 cachedlogs 管理调用导致日志消息被分解
APIRT-3117 MP 的 CPU 利用率达到 100% 并停止处理流量
APIRT-3064 路由器 - 来自路由器的自定义 503 错误消息
APIRT-2620 为某些阻塞步骤单独的线程池,以提高负载处理能力
CORESERV-774 使用有效密钥和无效的 apiproduct 引用进行访问导致内部服务器错误

Cloud 16.10.05(界面)

问题 ID 说明
EDGEUI-697 “报告”页面导出按钮
“导出”按钮已从“自定义报告”首页中移除。每个自定义报告页面均提供报告导出功能。

Cloud 16.08.24.01

问题 ID 说明
EDGEUI-663 为 WeatherHttpGet 端口生成的代理在运行时失败并显示 500 错误
为 SOAP 服务生成 API 代理时,没有 SOAP 协议绑定的 WSDL 端口在 API 代理向导中不再可见。这是设计使然,因为向导仅生成 SOAP 请求。
EDGEUI-658 SOAP WSDL 直通操作名称问题
EDGEUI-653 选择“启用 Cors”选项后创建 node.js API 代理时出错
EDGEUI-648 在界面中等待 2 到 3 分钟超时的通话
EDGEUI-623 组织历史记录的“更改日期”按钮在 Firefox 中不起作用