Edge Microgate 版本说明

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

版本 3.3.x

问题修复和增强功能 v.3.3.x

3.3.3

2024 年 4 月 25 日,我们发布了针对 Edge Microgateway 的以下修复和增强功能。

组件版本

下表列出了与 Edge Microgateway 3.3.3 关联的各个组件项目的版本号。请注意,由于每个组件都是一个单独的项目,因此版本号可能与主产品版本不一致:

microgateway core 配置 插件 edgeauth
3.3.3 3.3.3 3.3.3 3.3.3 3.2.2

bug 修复和增强功能

问题 ID 类型 说明
315939218 已移除

Eureka 客户端插件已从 Edge Microgateway 中移除。移除此功能不会影响 Edge Microgateway 的核心功能或重写目标网址。如需了解详情,请参阅重写插件中的目标网址

283947053 已移除

从 Edge Microgateway 中移除了对 forever-monitor 的支持。您可以将 forever-monitor 替换为 PM2。如需了解详情,请参阅此 Apigee 社区帖子:Edgemicro + PM2:入门 Edgemicro 即服务

已解决的安全问题

  • CVE-2023-0842
  • CVE-2023-26115
  • CVE-2022-25883
  • CVE-2017-20162
  • CVE-2022-31129
  • CVE-2022-23539
  • CVE-2022-23541
  • CVE-2022-23540
  • CVE-2024-21484
  • CVE-2022-46175
  • CVE-2023-45133
  • CVE-2020-15366
  • CVE-2023-26136
  • CVE-2023-26115

3.3.2

2023 年 8 月 18 日,我们发布了针对 Edge Microgateway 的以下修复和增强功能。

组件版本

下表列出了与 Edge Microgateway 3.3.2 关联的各个组件项目的版本号。请注意,由于每个组件都是一个单独的项目,因此版本号可能与主产品版本不一致:

microgateway core 配置 插件 edgeauth
3.3.2 3.3.2 3.3.2 3.3.2 3.2.2

bug 修复和增强功能

问题 ID 类型 说明
296187679 特征

受支持的 Node.js 版本包括:16、18 和 20。从版本 3.3.2 开始,Edge Microgateway CLI 命令仅适用于受支持的版本。在不受支持的版本上执行 CLI 命令将导致错误。另请参阅 Apigee 支持的软件和支持的版本

283947053 bug

修复了 Edge Microgateway 返回与应用关联的 API 产品列表中的第一个 API 产品的问题。我们现在根据请求确定要返回的正确 API 产品。

274443329 bug

修复了 Docker 拉取过时的映像版本的问题。Docker 节点版本已更新为 Node.js 版本 18。我们现在使用版本 18.17-buster-slim 构建 Docker 映像。

已解决的安全问题

无。

3.3.1

2022 年 6 月 7 日,我们发布了针对 Edge Microgateway 的以下修复和增强功能。

组件版本

下表列出了与 Edge Microgateway 3.3.1 关联的各个组件项目的版本号。请注意,由于每个组件都是一个单独的项目,因此版本号可能与主产品版本不一致:

microgateway core 配置 插件 edgeauth
3.3.1 3.3.1 3.3.1 3.3.1 3.2.2

bug 修复和增强功能

问题 ID 类型 说明
220885293 特征

现在支持 Node.js 版本 16。

231972608 bug

修复了以下问题:private configure 命令在尝试针对私有云进行配置时抛出错误。

233315475 bug

修复了以下问题:json2xml plugin在将响应从 JSON 转换为 XML 时以及与 accumulate-response plugin结合使用时会发生解析错误。

221432797 更改

基础 Edge Microgateway 映像的 Docker Node.js 版本已升级到 Node.js 14。

215748732 特征

revokekeys 命令中新增了对 SAML 令牌身份验证的支持。

您现在可以使用 revokekeys 命令中的 -t 选项传递 SAML 令牌(而非用户名和密码凭据)。

如需了解详情,请参阅命令行参考文档

218723889 文档更新

本文档已更新,添加了指向 GitHub 上存储的受支持 Edge Microgateway 插件的链接。请参阅与 Edge Microgateway 捆绑的现有插件

已解决的安全问题

问题 ID 说明
CVE-2021-23413 这会影响 3.7.0 之前的软件包 jszip。如果创建新的 ZIP 文件并将文件名设为对象原型值(例如 proto、toString 等),则会返回一个包含经过修改的原型实例的对象。

3.3.0

2022 年 2 月 4 日,我们发布了针对 Edge Microgateway 的以下修复和增强功能。

组件版本

下表列出了与 Edge Microgateway 3.3.0 关联的各个组件项目的版本号。请注意,由于每个组件都是一个单独的项目,因此版本号可能与主产品版本不一致:

microgateway core 配置 插件 edgeauth
3.3.0 3.3.0 3.3.0 3.3.0 3.2.2

bug 修复和增强功能

问题 ID 类型 说明
219556824 已知问题 Edge Microgateway Gateway 3.3.0 与 npm Audit Fix 命令不兼容。

运行 npm audit fix 会导致 apigeetool 升级到 0.15.2,这会影响 edgemicro upgradeauth 命令。

如果您执行 npm audit fix,随后执行 edgemicro upgradeauth,则会看到以下错误:

Error: This method has been removed in JSZip 3.0, please check the upgrade guide.

如需解决此问题,请执行以下命令以恢复 apigeetool 的正确版本:

npm install apigeetool@0.15.1

此问题将在未来的 Edge Microgateway 版本中得到解决。

138622990 特征

配额插件 isHTTPStatusTooManyRequestEnabled 的新标志可将插件配置为在出现配额违规时返回 HTTP 429 响应状态,而不是状态 403。请参阅配额的配置选项

192534424 bug

修复了 Apigee Analytics 中显示的响应代码与 Edge Microgateway 响应代码不一致的问题。

198986036 增强选项 现在,Edge Microgateway 会在每个轮询间隔提取身份提供方 (IDP) 的公钥,并在 IDP 的公钥发生更改时更新该密钥。以前,如果 IDP 的公钥发生更改,extauth 插件将无法在不重新加载 Edge Microgateway 的情况下更新公钥。
168713541 bug

完善了文档,以说明如何为多个目标配置 TLS/SSL。请参阅使用客户端 SSL/TLS 选项

171538483 bug

更改了文档以更正日志文件命名惯例。请参阅日志文件命名惯例

157908466 bug

更改了文档,以正确说明如何安装特定版本的 Edge Microgateway。请参阅在连接到互联网的情况下升级 Edge Microgateway

215748427 bug 修复了以下问题:使用现有密钥和密钥对来撤消密钥时,revokekeys 命令返回错误。
205524197 bug 更新了相关文档,添加了日志记录级别的完整列表。请参阅 edgemicro 属性如何设置日志记录级别

版本 3.2.x

问题修复和增强功能 v.3.2.x

3.2.3

2021 年 9 月 17 日,我们发布了针对 Edge Microgateway 的以下修复和增强功能。

组件版本

下表列出了与 Edge Microgateway 3.2.3 关联的各个组件项目的版本号。请注意,由于每个组件都是一个单独的项目,因此版本号可能与主产品版本不一致:

microgateway core 配置 插件 edgeauth
3.2.3 3.2.3 3.2.3 3.2.3 3.2.2

bug 修复和增强功能

问题 ID 类型 说明
192416584 特征

借助 disableStrictLogFile 配置属性,您可以放宽对应用日志文件 api-log.log 的严格文件权限。如需了解详情,请参阅如何放宽日志文件权限

192799989 特征

通过 on_target_response_abort 配置属性,您可以控制在客户端 (Edge Microgateway) 与目标服务器之间的连接过早关闭时 Edge Microgateway 的行为。如需了解详情,请参阅 edgemicro 属性

148062415 bug 修复了以下问题:在 Docker 容器上下文中,Edge Microgateway 无法使用 docker stop {containerId} 命令正常关闭。进程已终止,但 .sock.pid 文件未移除。现在,这些文件已被移除,并且重启同一容器可以按预期运行。
190715670 bug 修复了以下问题:某些请求在微网关的内部重新加载活动期间卡住。此问题为间歇性的,发生在高流量的情况下。 使用 OAuth 插件的 tokenCachecacheKey 功能时,就会出现此问题。
183910111 bug 修复了以下问题:以斜杠结尾的资源路径网址被错误地解释为单独的资源路径。例如,现在,路径 /country/all/country/all/ 会被解释为同一路径。

已解决的安全问题

问题 ID 说明
CVE-2020-28503 2.0.5 之前的软件包复制属性很容易通过主要功能受到原型污染。
CVE-2021-23343 所有版本的软件包路径解析都容易受到通过 splitDeviceRe、splitTailRe 和 splitPathRe 正则表达式进行的正则表达式拒绝服务攻击 (ReDoS)。ReDoS 展示了多项式最糟糕时间复杂度。

3.2.2

2021 年 7 月 15 日(星期四),我们发布了针对 Edge Microgateway 的以下修复和增强功能。

组件版本

下表列出了与 Edge Microgateway 3.2.2 关联的各个组件项目的版本号。请注意,由于每个组件都是一个单独的项目,因此版本号可能与主产品版本不一致:

microgateway core 配置 插件 edgeauth
3.2.2 3.2.2 3.2.2 3.2.2 3.2.2

bug 修复和增强功能

问题 ID 类型 说明
185323500 更改

expires_in 值从字符串更改为整数

令牌请求和刷新令牌请求 API 现在以整数值(以秒为单位)的形式返回 expires_in

为了符合 RFC 6749 OAuth 2.0 授权框架expires_in 配置参数的预期值已从字符串更改为整数。如需了解详情,请参阅操作和配置参考文档

188492065 更改 停止支持 Node.js 8

从 3.2.2 版开始,Node.js 8 将不再受支持。如需了解详情,请参阅支持的软件和支持的版本:Edge Microgateway

183990345 特征 为 Docker 容器配置日志输出

通过 Edge Microgateway 配置参数 to_console,您可以选择将日志信息发送到标准输出而不是日志文件。如果您按照相应步骤在 Docker 容器中运行 Edge Microgateway,该容器默认会将 stdout 和错误输出重定向到位于容器中的以下位置的文件:${APIGEE_ROOT}/logs/edgemicro.log

为防止将日志信息发送到 edgemicro.log,请在运行容器时使用新的 LOG_CONSOLE_OUTPUT_TO_FILE 变量。

如需详细了解如何使用此新变量,请参阅为 Edge Microgateway 使用 Docker

183057665 特征 使 edgemicro.pidedgemicro.sock 文件路径可配置。

通过 Edge Microgateway 运行 Docker 容器的新 -w, --workdir 参数,您可以指定应在 Docker 容器中创建 edgemicro.sockedgemicro.pid 文件的目录的路径。请参阅为 Edge Microgateway 使用 Docker

191352643 特征 Edge Microgateway 的 Docker 映像已更新为使用 NodeJS 12.22 版。请参阅为 Edge Microgateway 使用 Docker

已解决的安全问题

问题 ID 说明
CVE-2021-28860 在 Node.js mixme 中,在 v0.5.1 之前,攻击者可以通过 mutate() 和 merge() 函数通过“__proto__”添加或更改对象的属性。污染属性将直接分配给程序中的每个对象。这会使该计划的可用性面临潜在的拒绝服务攻击 (DoS) 的风险。
CVE-2021-30246 在适用于 Node.js 的 jsrsasign 软件包中(一直到 10.1.13),某些无效的 RSA PKCS#1 v1.5 签名被错误地识别为有效。注意:尚无已知的实际攻击。
CVE-2021-23358 1.13.0-0、1.13.0-2 之前、1.3.2 和 1.12.1 之前的软件包下划线很容易通过模板函数进行任意代码注入,尤其是当变量属性作为参数传递时(因为未对其进行排错)。
CVE-2021-29469 Node-redis 是一个 Node.js Redis 客户端。在 3.1.1 版之前,当客户端处于监控模式时,正则表达式开始用于检测监控消息可能会导致某些字符串出现指数回溯。此问题可能会导致拒绝服务攻击。此问题已在版本 3.1.1 中修复。
CVE-2020-8174 Docker 映像已更新为使用 Node.js 12.22 版

3.2.1

2021 年 3 月 5 日(星期五),我们发布了针对 Edge Microgateway 的以下修复和增强功能。

组件版本

下表列出了与 Edge Microgateway 3.2.1 关联的各个组件项目的版本号。请注意,由于每个组件都是一个单独的项目,因此版本号可能与主产品版本不一致:

microgateway core 配置 插件 edgeauth
3.2.1 3.2.1 3.2.1 3.2.1 3.2.1

bug 修复和增强功能

问题 ID 类型 说明
180362102 bug 修复了具有 null 值的 JWK 键导致应用失败的问题。

系统现在会处理 null 条件,以避免在 jwkPublicKeys 中传递 null 值。

注意:此修复要求您升级 edgemicro-auth 代理。

179971737 bug 修复了目标 4XX / 5XX 状态响应被记录为 edgemicro_* 代理的代理错误的问题。

对于 Edge Microgateway 事务,Apigee Edge 错误代码分析信息中心内显示的目标错误计数不正确。目标错误的错误代码已计为代理错误。此问题已得到解决,现在会显示正确的目标错误数。

179674670 特征 新增了一项功能,允许您根据产品状态代码过滤放置在 JWT 中的 API 产品列表。

API 产品有三种状态代码:待处理、已批准和已撤消。 edgemicro-auth 代理的设置 JWT 变量政策中添加了一个名为 allowProductStatus 的新属性。如需使用此属性过滤 JWT 中列出的 API 产品,请执行以下操作:

  1. 在 Apigee 代理编辑器中打开 edgemicro-auth 代理。
  2. allowProductStatus 属性添加到 SetJWTVariables 政策的 XML 中,并指定要过滤的状态代码列表(以英文逗号分隔)。例如,要按待处理已撤消状态进行过滤,请运行以下代码:
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <Javascript timeLimit="20000" async="false" continueOnError="false"
        enabled="true" name="Set-JWT-Variables">
        <DisplayName>Set JWT Variables</DisplayName>
        <FaultRules/>
        <Properties>
            <Property name="allowProductStatus">Pending,Revoked</Property>
        </Properties>
        <ResourceURL>jsc://set-jwt-variables.js</ResourceURL>
    </Javascript>
    
    

    如果您只想列出已批准的产品,请按如下方式设置属性:

    <Property name="allowProductStatus">Approved</Property>
  3. 保存代理。

    如果没有 Property 标记,则具有所有状态代码的商品将列在 JWT 中。

    如需使用以下新属性,您必须升级 edgemicro-auth 代理。

178423436 bug 在 CLI 中或通过环境变量传递的键值对在 Process Explorer 命令行参数中可见。

报告了一个问题:启动微网关后,通过命令行参数传递或通过环境变量设置的 Edge Microgateway 密钥和 Secret 值显示在节点工作器/子进程的参数中。

为了针对环境变量场景解决此问题,Process Explorer 命令行参数中将不再显示值。

如果在启动微网关时在命令行中传递密钥值和密钥值,这些设置会取代任何环境变量值(如果已设置)。在这种情况下,这些值仍会显示在进程浏览器命令行参数中。

178341593 bug 修复了 apikeys 插件的文档错误。

apikeys 插件的 README 文件中错误地包含 gracePeriod 属性。我们从 README 文件中移除了此属性及其说明。

gracePeriod 属性在 oauth 插件中实现。如需使用宽限期功能,您必须使用 oauth 插件。

179366445 bug 解决了以下问题:发送到目标的所有 GET 请求的载荷都被丢弃。

您可以使用新的配置参数 edgemicro: enable_GET_req_body 控制期望的行为。如果设置为 true,请求标头 transfer-encoding: chunked 会添加到所有 GET 请求中,并会向目标发送 GET 载荷(如果存在)。如果为 false(默认值),系统会在将请求发送到目标之前以静默方式移除载荷。

例如:

edgemicro:
 enable_GET_req_body: true

根据 RFC 7231 第 4.3.1 节:GET,GET 请求载荷没有已定义的语义,因此可以发送到目标。

3.2.0

2021 年 1 月 21 日(星期四),我们发布了针对 Edge Microgateway 的以下修复和增强功能。

组件版本

下表列出了与 Edge Microgateway 3.2.0 关联的各个组件项目的版本号。请注意,由于每个组件都是一个单独的项目,因此版本号可能与主产品版本不一致:

microgateway core 配置 插件 edgeauth
3.2.0 3.2.0 3.2.0 3.2.0 3.2.0

bug 修复和增强功能

问题 ID 类型 说明
152640618 bug 启用了 extauth 插件以将 x-api-key 标头设置为在令牌有效时包含请求对象的 client_idx-api-key 随后可供后续插件使用。
168836123、172295489、176462355、176462872 特征 添加了对 Node.js 14 的支持。
172376835 bug edgemicro-auth 代理中为 /token 端点使用正确的时间单位。

修复了 edgemicro-auth 代理中的 /token 端点以毫秒为单位返回 expires_in 的问题;不过,根据 OAuth 规范,它应该与 refresh_token_expires_in 的时间单位(秒)保持一致。

此修复不会更改过期时间的长度,而只会更改时间单位。它仅适用于访问令牌响应载荷中的 expires_in 字段。同一响应载荷中的 JWT 令牌将包含 iatexp 两个字段,它们能正确生成,并且一直使用 seconds 时间单位。

如果客户端一直依赖 expires_in 值(以毫秒为单位)在令牌过期之前刷新令牌,那么在不修改客户端的情况下应用此修正会导致刷新更频繁且不必要的刷新。这些客户端需要修改以适应时间单位变更,以保持原始行为。

如果客户端一直使用 JWT 令牌中的值来评估令牌刷新周期,则不需要更改客户端。

173064680 bug 修复了一个问题,即微网关在所有数据块处理完毕之前就终止了目标请求的问题。

这是在载荷大小高的请求上观察到的一个间歇性问题,该问题是在 3.1.7 版本中引入的。

174640712 bug 向插件添加适当的数据处理方式。

以下插件中添加了适当的数据处理功能:json2xmlaccumulate-requestaccumulate-responseheader-uppercase。如需了解插件详情,请参阅 microgateway-plugins

版本 3.1.x

问题修复和增强功能 v.3.1.x

3.1.8

2020 年 11 月 16 日(星期一),我们发布了针对 Edge Microgateway 的以下修复和增强功能。

组件版本

下表列出了与 Edge Microgateway 3.1.8 关联的各个组件项目的版本号。请注意,由于每个组件都是一个单独的项目,因此版本号可能与主产品版本不一致:

microgateway core 配置 插件 edgeauth
3.1.8 3.1.9 3.1.7 3.1.3 3.1.2

bug 修复和增强功能

问题 ID 类型 说明
169201295 bug 环境变量标记中的数字和布尔值解析有误。

环境变量替换处理会将所有值解析为字符串,从而导致布尔值或数值解析错误。例如,edgemicro.port 需要数值且需要数值。进行了修复,以支持布尔值和数值。如需了解配置详情,请参阅使用环境变量值设置配置属性

169202749 bug 在某些情况下,环境变量替换不起作用。

环境变量替换处理对某些配置属性不起作用。如需了解限制,请参阅使用环境变量值设置配置属性

168732942 bug 修复了 OAuth 范围未按预期限制 API 代理访问权限的问题。

由于两种不同的情况,edgemicro-auth 代理中的 /token 流生成的 JWT 没有在 Edge 上定义的正确产品范围:1) 发送到 /token 流的请求载荷未传递范围参数,或 2) 请求载荷中传递给 /token 流的无效范围。已修复,以返回 Apigee Edge 上的 API 产品中定义的所有范围。

170609716 bug 修复了 edgemicro-auth 代理中的 /refresh 流生成的 JWT 不包含 apiProductList 的问题。

170708611 bug API 产品范围不适用于自定义插件。

API 产品范围不能供自定义插件使用,也不会写入缓存配置文件。如需了解如何让插件访问范围详情,请参阅 插件 init() 函数简介

169810710 特征 缓存配置文件中保存的键值和密钥。

每次重新加载/启动时,Edge Microgateway 密钥和密钥都会保存在缓存配置 yaml 文件中。在 3.1.8 中,密钥和密钥不再保存在缓存配置文件中。如果键和 Secret 之前写入到缓存配置文件中,它们将被移除。

170708621 特征 无法停用分析插件。

在以前的微网关版本中,分析插件默认处于启用状态,且无法停用。3.1.8 版中引入了新的配置参数 enableAnalytics,用于启用或停用分析插件。如需了解详情,请参阅配置参考文档

159571119 bug 由于响应/套接字超时,自定义插件中的 onerror_request 钩子机制出现 null 错误。

进行了修复,以为 onerror_request 事件填充正确的 HTTP 状态代码和错误消息,并为 onerror_response 事件填充正确的错误消息。

3.1.7

2020 年 9 月 24 日(星期四),我们发布了针对 Edge Microgateway 的以下修复和增强功能。

组件版本

下表列出了与 Edge Microgateway 3.1.7 关联的各个组件项目的版本号。请注意,由于每个组件都是一个单独的项目,因此版本号可能与主产品版本不一致:

microgateway core 配置 插件 edgeauth
3.1.7 3.1.8 3.1.6 3.1.2 3.1.1

bug 修复和增强功能

问题 ID 类型 说明
131708105 bug analytics 插件错误处理了来自 axpublisher 调用的 null 响应,并导致工作器退出。

133162200 bug Google Analytics(分析)中未使用由未经授权的商品资源路径引起的 403 状态响应,或因令牌过期或无效导致的 401 响应而导致在 Google Analytics(分析)中填充开发者应用信息。

132194290 bug 当 Apigee Edge 拒绝某些分析记录时,分析记录将被舍弃。

158618994 bug Redis 客户端连接过多。

161404373 bug 如果收到 404 状态响应,响应消息中将包含完整的代理 URI。
166356972 bug

运行使用 Node.js 12.13.x 或更高版本的 Edge Microgateway 会导致在执行可转换请求载荷的插件时出现以下错误

{"message":"write after end","code":"ERR_STREAM_WRITE_AFTER_END"}

168681746 bug 使用 redisBasedConfigCache:true 的 Edge Microgateway 手动重新加载不起作用。

149256174 bug 未记录网络故障的 OAuth 插件错误。

166517190 bug Synchronizer 未存储和提取 jwk_public_keys 数据,这些数据存储在 Redis 中。

141659881 bug 对无效目标证书的处理方式出现误导性错误响应。

142808699 bug 访问控制插件未正确处理“allow”和“deny”部分。

现在,微网关会正确处理拒绝部分,并遵循“允许”和“拒绝”部分的顺序。微网关配置文件中新增了 noRuleMatchAction 属性,以与 Apigee Edge 访问权限控制政策保持一致。另请参阅 GitHub 上的访问权限控制插件自述文件

3.1.6

2020 年 8 月 20 日(星期四),我们发布了针对 Edge Microgateway 的以下修复和增强功能。

组件版本

下表列出了与 Edge Microgateway 3.1.6 关联的各个组件项目的版本号。请注意,由于每个组件都是一个单独的项目,因此版本号可能与主产品版本不一致:

microgateway core 配置 插件 edgeauth
3.1.6 3.1.7 3.1.5 3.1.1 3.1.1

bug 修复和增强功能

问题 ID 类型 说明
163711992 特征 rotatekey 命令的自定义密钥和证书文件位置选项。

如需详细了解这些新的命令选项,请参阅轮替密钥

154838259 bug 修复多个数据中心内多实例的密钥轮替

如需详细了解这些新的命令选项,请参阅轮替密钥

145525133 Alpha 版功能 新插件指标

如需了解详情,请参阅 GitHub 上的 新插件指标自述文件。

159396879 bug 移除未使用的软件包帮助程序
161092943 bug 基本路径验证不正确

在 3.1.6 版之前,当基本路径不是以 / 结尾时,代理基本路径的匹配不正确。

下文进一步说明了之前的行为(在 3.1.6 中已修复):

假设代理配置了基本路径 /hello/v1 和指向 https://mocktarget.apigee.net 的目标路径。现在,假设代理收到以下请求:

请求路径 已解析的路径 结果
/hello/v1/json https://mocktarget.apigee.net/json 解析后的路径正确无误,因为 /hello/v1 的基本路径匹配正确。
请求路径 已解析的路径 结果
/hello/v1json https://mocktarget.apigee.netjson 解析后的路径不正确,因为 /hello/v1/hello/v1json 的子字符串。由于 /hello/v1json 不是有效路径,Edge Microgateway 应抛出 404。在 3.1.6 版及更高版本中,在这种情况下,系统会抛出 404 错误。
160431789 bug 自定义插件 - 传递给 init 的配置对象未填充

与 Edge Microgateway 配置文件合并后,所有自定义插件的配置对象中都会提供 Apigee Edge 配置。请参阅配置

162758808 bug Redis 后备存储空间的新配额配置

您可以使用以下配置为配额指定 Redis 后备存储空间。如需了解详情,请参阅使用 Redis 后备存储空间进行配额

3.1.5

2020 年 6 月 26 日(星期五),我们发布了针对 Edge Microgateway 的以下修复和增强功能。

组件版本

下表列出了与 Edge Microgateway 3.1.5 关联的各个组件项目的版本号。请注意,由于每个组件都是一个单独的项目,因此版本号可能与主产品版本不一致:

microgateway core 配置 插件 edgeauth
3.1.5 3.1.6 3.1.4 3.1.0 3.1.0

bug 修复和增强功能

问题 ID 类型 说明
159210507 特征 用于排除插件处理的配置

新增了一项配置功能,用于跳过处理指定网址的插件。如需了解详情,请参阅 为插件配置排除网址

156986819、158529319 bug 修复了 json2xml 插件的问题

修复了以下问题:插件生成重复的 Content-Type 标头,以及在某些情况下标头未按预期发送到目标。

156560067、159688634 特征

在配置中使用环境变量值

添加了一项功能,允许您使用配置文件中的标记指定环境变量。指定的环境变量标记将被替换为实际的环境变量值。 替换内容仅存储在内存中,不会存储在原始配置或缓存文件中。如需了解详情,请参阅 使用环境变量值设置配置属性

155077210 bug 修复了日志格式问题。

修复了目标主机出现在日志中并附加了多余的冒号的问题。

153673257 bug

(仅限 Private Cloud 的 Edge)未拉取微网关感知的产品

修复了无法拉取微网关感知型产品的问题。只有在使用 Private Cloud 安装的 Edge 上才会出现此问题。

154956890、155008028、155829434 特征 支持按自定义属性过滤下载的商品

如需了解详情,请参阅按自定义属性过滤商品

153949764 bug 修复了在日志目标文件已满时 Edge Microgateway 进程崩溃的问题

改进了异常处理功能,以捕获错误并向控制台输出消息。

155499600 bug 修复了密钥轮替和 KVM 升级方面的问题

另请参阅轮替 JWT 密钥

3.1.4

2020 年 4 月 23 日(星期五,我们发布了针对 Edge Microgateway 的以下修复)。

bug 修复

修复了版本 3.1.3 中的依赖项问题。版本 3.1.3 在 npm 代码库中已标记为已弃用。否则,3.1.3 版版本说明中所述的所有 bug 修复和增强功能都适用于此版本。

3.1.3

2020 年 4 月 15 日(星期三),我们发布了针对 Edge Microgateway 的以下修复和增强功能。

组件版本

下表列出了与 Edge Microgateway 3.1.3 关联的各个组件项目的版本号。请注意,由于每个组件都是一个单独的项目,因此版本号可能与主产品版本不一致:

microgateway core 配置 插件 edgeauth
3.1.3 3.1.3 3.1.3 3.0.14 3.0.9

bug 修复和增强功能

  • 153509313 - 修复了 Node.js 调试模块导致内存泄漏的问题。此问题在版本 v3.1.0、v3.1.1 和 3.1.2 中存在。
  • 153509313 - 修复了以下问题:日志记录输出中输出了两个不同事务的相同消息 ID。
  • 151673570 - 修复了 Edge Microgateway 未更新为使用新的 Apigee KVM API 的问题。Edge Microgateway 现在会使用新命令添加和更新 KVM 值。
  • 152822846 - 在之前的版本中,Edge Microgateway 已更新,因此其资源路径映射处理与 Apigee Edge 的处理一致。此版本修复了以下问题:无法正确处理 /literal_string/* 格式。例如/*/2/*。另请参阅 配置“/”、“/*”和“/**”资源路径的行为
  • 152005003 - 进行了更改,以便为配额启用组织和环境范围的标识符。
  • 152005003 - 进行了更改,以便为配额启用组织和环境范围的标识符。“org + env + appName + productName”的组合用作配额标识符。

3.1.2

2020 年 3 月 16 日(星期一),我们发布了针对 Edge Microgateway 的以下修复和增强功能。

组件版本

下表列出了与 Edge Microgateway 3.1.3 关联的各个组件项目的版本号。请注意,由于每个组件都是一个单独的项目,因此版本号可能与主产品版本不一致:

microgateway core 配置 插件 edgeauth
3.1.2 3.1.2 3.1.2 3.0.13 3.0.9

bug 修复和增强功能

  • 151285018 - 进行了一项功能增强功能,为 Edge Microgateway 和后端目标之间的流量添加了 HTTP 代理支持。此外,我们还修复了 Edge Microgateway 和 Apigee Edge 之间现有 HTTP 代理支持的问题。如需了解详情,请参阅:
  • 149101890 - 目标服务器或负载平衡器关闭连接的情况的日志通知代码从 ERROR 更改为 INFO。
  • 150746985 - 修复了以下问题:当配置文件中存在 redisBasedConfigCache: truequotaUri: https://%s-%s.apigee.net/edgemicro-auth 时,edgemicro verify 命令会无法正常运行。
  • 151284716 - 进行了一项增强功能,可在重新加载期间重启工作器时更快地关闭服务器连接。
  • 151588764 - 将用于在 Docker 容器中运行 Edge Microgateway 的 Docker 映像中的 Node.js 版本更新为 12,因为 Node.js v8 已弃用。
  • 151306049 - 进行了文档更新,列出了 Edge Microgateway CLI 命令使用的 Apigee Edge 管理 API。请参阅 Edge Microgateway 使用哪些管理 API?

3.1.1

2 月 20 日(星期四),我们发布了针对 Edge Microgateway 的以下修复和增强功能。

组件版本

下表列出了与 Edge Microgateway 3.1.1 关联的各个组件项目的版本号。请注意,由于每个组件都是一个单独的项目,因此版本号可能与主产品版本不一致:

microgateway core 配置 插件 edgeauth
3.1.1 3.1.1 3.1.1 3.0.13 3.0.9

bug 修复和增强功能

  • 146069701 - 修复了 microgateway-core 模块不遵循 HTTP_PROXYHTTPS_PROXY 环境变量的问题。进行此更改后,现在系统会忽略 YAML 配置文件中的代理设置(如果已指定);仅使用环境变量来指定代理。

    如果要在配置文件中指定代理配置,您还必须指定 HTTP_PROXY 变量,该变量提及的代理网址与配置文件中指定的网址相同。例如,如果您指定以下配置:

    edge_config:
      proxy: http://10.128.0.20:3128
      proxy_tunnel: true
    

    您还必须指定以下环境变量:

    HTTP_PROXY=http://10.128.0.20:3128
  • 146320620 - 添加了新的配置参数 edgemicro.headers_timeout。此属性限制 HTTP 解析器等待接收完整 HTTP 标头的时间(以毫秒为单位)。例如:
    edgemicro:
    keep_alive_timeout: 6000
    headers_timeout: 12000

    在内部,该参数在请求中设置 Node.js Server.headersTimeout 属性。(默认:比使用 edgemicro.keep_alive_timeout 设置的时间长 5 秒。此默认设置可防止负载平衡器或代理错误地断开连接。)

  • 149278885 - 添加了一项新功能,允许您在 API 代理级别设置目标 API 超时,而不是使用一个全局超时设置。

    如果您在 API 代理中设置了 TargetEndpoint 属性 io.timeout.millis,Edge Microgateway 将能够检索该属性并应用目标端点特定的超时。如果未应用此参数,Edge Microgateway 将使用通过 edgemicro.request_timeout 指定的全局超时。

3.1.0

1 月 21 日(星期二),我们发布了针对 Edge Microgateway 的以下修复和增强功能。

组件版本

下表列出了与 Edge Microgateway 3.1.0 关联的各个组件项目的版本号。请注意,由于每个组件都是一个单独的项目,因此版本号可能与主产品版本不一致:

microgateway core 配置 插件 edgeauth
3.1.0 3.1.0 3.1.0 3.0.12 3.0.9

bug 修复和增强功能

  • 144187500 - 触发 quotas.failOpen 标志时,系统会记录一个新的警告级别事件。发生配额处理错误或向 Edge 的“应用配额”请求无法更新远程配额计数器时,会触发此标志。在这种情况下,只有在下次成功同步远程配额之前,才会根据本地计数处理配额。以前,只有在日志级别设置为“调试”时,系统才会记录此事件。

    例如:

    2020-01-20T02:52:53.040Z [warn][localhost:8000][5][foo-eval][test][hello/][]
    [DbpGIq9jKfzPX8jvXEivhA0LPwE][f372cc30-3b2f-11ea-845f-a627f][quota][remote quota not
    available so processing locally, setting quota-failed-open for identifier: AppQuota60.Quota60]
    [GET][][][][]
  • 145023519 - 解决了以下问题:每当 Edge Microgateway 检测到 API 代理更改时,正在传输或新事务都会受到影响。现在,当代理发生更改时,Edge Microgateway 会刷新缓存并重启工作器节点。进行此更改后,发送到微网关的正在进行的事务和新的 API 调用不会受到影响。
  • 146378327 - 将 sourceRequesttargetRequesttargetResponse 的日志级别更改为 INFO 级别。
  • 146019878 - 在 Edge 分析和 Edge Microgateway sourceResponse/targetResponse 日志事件中针对“API 代理性能”计算的延迟时间之间的差异已得到修复。现在,Edge 分析和 Microgateway 日志事件中的延迟时间一致。
  • 与模式匹配逻辑相关的变更:
    • 147027862 - OAuth 插件已更新为支持 API 产品中指定的以下资源路径匹配模式:
      • /{literal}**
      • /{literal}*
      • 以上两种模式的任意组合

      进行此更改后,Edge Microgateway 插件现在遵循与 Apigee Edge 相同的模式匹配,如配置“/”、“/*”和“/**”资源路径的行为中所述。

    • 145644205 - 更新了 apiKeys 插件的模式匹配逻辑,以匹配 OAuth 插件。
  • 143488312 - 解决了以下问题:对于 OAuth 令牌和 API 密钥请求,客户端 ID 参数的开头或结尾空格导致创建 JWT 产品列表为空。
  • 145640807 和 147579179 - 新增了一项功能,该功能允许一个名为“同步器”的特殊 Edge Microgateway 实例从 Apigee Edge 检索配置数据,并将其写入本地 Redis 数据库。然后,可以将其他微网关实例配置为从数据库中读取其配置数据。此功能可为 Edge Microgateway 提高一定程度的弹性。它允许微网关实例启动并正常运行,而无需与 Apigee Edge 通信。如需了解详情,请参阅使用同步器

    目前支持将同步功能与 Redis 5.0.x 搭配使用。

版本 3.0.x

问题修复和增强功能 v.3.0.x

3.0.10

11 月 8 日(星期五),我们发布了针对 Edge Microgateway 的以下修复和增强功能。

组件版本

下表列出了与 Edge Microgateway 3.0.10 关联的各个组件项目的版本号。请注意,由于每个组件都是一个单独的项目,因此版本号可能与主产品版本不一致:

microgateway core 配置 插件 edgeauth
3.0.10 3.0.8 3.0.8 3.0.11 3.0.8

bug 修复和增强功能

  • 142677575 - 进行了功能更新,使 Edge Microgateway API 产品中使用的资源路径模式匹配现在与 Apigee Edge 使用的资源路径模式匹配保持一致,如 配置“/”“/*”和“/**”的资源路径的行为中所述。

    注意:如果您使用 /*/2/** 等复合资源模式,则必须确保将 edgemicro_auth 代理添加到独立的 API 产品中。然后,您必须将该产品添加到代理的开发者应用中,如以下屏幕截图所示:

    alt_text

    注意:Edge Microgateway 不支持 配置“/”、“/*”和“/**”资源路径的行为中所述的 features.isSingleForwardSlashBlockingEnabled 配置属性。

  • 143740696 - quotas 配置结构已更改(另请参阅版本 3.0.9 的版本说明)。quotas 属性用于配置配额插件。对结构进行更改是为了提高配置元素的清晰度。 如需配置配额插件,请使用以下 YAML 配置。请注意,配置属性称为 quotas。 如需详细了解各个 quotas 配置属性,请参阅 配额的配置选项

    edgemicro:
      home: ../gateway
      port: 8000
      max_connections: -1
      max_connections_hard: -1
      logging:
        level: info
        dir: /var/tmp
        stats_log_interval: 60
      plugins:
        dir: ../plugins
        sequence:
          - oauth
          - quota
    quotas:
      bufferSize:
        hour: 20000
        minute: 500
        default: 10000
      useDebugMpId: true
      failOpen: true
    ...
  • 141750056 - 新增了一项功能,可让您将 Redis 用作配额后备存储空间。如果 useRedis 为 true,则使用 volos-quota-redis 模块。如果为 true,则配额仅限于连接到 Redis 的 Edge Microgateway 实例。如果为 false,则 volos-quota-apigee 模块将用作后备存储空间,并且配额计数器为全局性。如需了解详情,请参阅 配额的配置选项。例如:
    edgemicro:
    ...
    quotas:
      useRedis: true
      redisHost: localhost
      redisPort: 6379
      redisDb: 1
  • 140574210 - edgemicro-auth 代理生成的令牌的默认到期时间已从 108000 毫秒(1.8 分钟)更改为 1800 秒(30 分钟)。
  • 143551282 - 为支持已启用 SAML 的组织,我们更新了 edgemicro genkeys 命令以包含 ‑‑token 参数。此参数允许您使用 OAuth 令牌(而不是用户名/密码)进行身份验证。如需了解详情,请参阅 生成密钥

3.0.9

10 月 11 日(星期五),我们发布了针对 Edge Microgateway 的以下修复和增强功能。

组件版本

下表列出了与 Edge Microgateway 3.0.9 关联的各个组件项目的版本号。请注意,由于每个组件都是一个单独的项目,因此版本号可能与主产品版本不一致:

microgateway core 配置 插件 edgeauth
3.0.9 3.0.7 3.0.7 3.0.10 3.0.7

bug 修复和增强功能

  • 141989374 - 为配额插件添加了新的“应急开启”功能。 启用此功能后,如果发生配额处理错误,或者对 Edge 的“应用配额”请求未能更新远程配额计数器,系统将仅根据本地计数处理配额,直到下次成功同步远程配额为止。在这两种情况下,系统都会在请求对象中设置 quota-failed-open 标志。

    如需启用配额“应急开启”功能,请设置以下配置:

    quotas :
     failOpen : true

    注意:此外,OAuth 插件的 fail-open 请求对象标志的名称已更改为 oauth-failed-open

  • 142093764 - 对 edgemicro-auth 代理进行了配置更改,以防止配额超支。更改的目的是将配额类型设置为日历。如需使用此改进功能,您必须将 edgemicro-auth 更新到 3.0.7 或更高版本。
  • 142520568 - 添加了一项新功能,用于在配额响应中记录 MP(消息处理器)ID。如需使用此功能,您必须将 edgemicro-auth 代理更新到 3.0.7 或更高版本,并设置以下配置:
    quotas:
      useDebugMpId: true

    设置 useDebugMpId 后,Edge 的配额响应将包含 MP ID,并且 Edge Microgateway 会记录该 ID。例如:

    {
        "allowed": 20,
        "used": 3,
        "exceeded": 0,
        "available": 17,
        "expiryTime": 1570748640000,
        "timestamp": 1570748580323,
        "debugMpId": "6a12dd72-5c8a-4d39-b51d-2c64f953de6a"
    }

3.0.8

9 月 26 日(星期四),我们发布了针对 Edge Microgateway 的以下修复和增强功能。

组件版本

下表列出了与 Edge Microgateway 3.0.8 关联的各个组件项目的版本号。请注意,由于每个组件都是一个单独的项目,因此版本号可能与主产品版本不一致:

microgateway core 配置 插件 edgeauth
3.0.8 3.0.6 3.0.6 3.0.9 3.0.6

bug 修复和增强功能

  • 140025210 - 添加了新的“应急开启”功能。此功能允许 API 处理在由于连接错误而无法成功刷新(导致无法成功调用 edgemicro-auth 代理)的情况下继续进行 API 处理。

    此功能允许您设置一个宽限期,在该宽限期内,旧令牌将保留在缓存中并可在宽限期到期之前重复使用。该功能允许 Edge Microgateway 在临时连接失败时继续处理请求。当连接恢复并且验证 API 密钥成功调用时,系统将提取新的 JWT 并替换缓存中的旧 JWT。

    如需配置新的“应急开启”功能,请执行以下操作:

    1. 在 Edge Microgateway 配置文件的 oauth 节中设置以下属性:
      oauth:
        failOpen: true
        failopenGraceInterval: time_in_seconds
        cacheKey: true
        ...

      例如:

      oauth:
        failOpen: true
        failopenGraceInterval: 5
        cacheKey: true
        ...

      在此示例中,如果旧令牌因连接问题而无法刷新,则系统将使用 5 秒钟。 5 秒后,系统将返回身份验证错误。

  • 141168968 - 进行了更新,以便在所有插件日志输出中包含 correlation_id。 此外,一些日志的日志级别已根据需要更改为 error
  • 140193349 - 对 edgemicro-auth 代理进行了更新,以要求在每个验证 API 密钥请求中验证 Edge Microgateway 密钥和 Secret。Edge Microgateway 已更新为始终在每个 Verify API 密钥请求中发送密钥和密文。此更改可防止客户端仅使用 API 密钥获取 JWT。
  • 140090250 - 更新了为配额处理添加诊断记录功能。进行此更改后,现在可以将 Quto 日志输出与 Edge Microgateway 日志的其余部分相关联。

3.0.7

9 月 12 日(星期四),我们发布了针对 Edge Microgateway 的以下修复和增强功能。

组件版本

下表列出了与 Edge Microgateway 3.0.7 关联的各个组件项目的版本号。请注意,由于每个组件都是一个单独的项目,因此版本号可能与主产品版本不一致:

microgateway core 配置 插件 edgeauth
3.0.7 3.0.5 3.0.5 3.0.8 3.0.5

bug 修复和增强功能

  • 140075602 - 对 OAuth 插件进行了更新,以酌情返回 5xx 状态代码。以前,该插件在所有非 200 情况下仅返回 4xx 状态代码。现在,对于不是 200 状态的任何消息响应,将返回确切的 4xx 或 5xx 代码,具体取决于错误。

    此功能默认处于停用状态。如需启用此功能,请在您的 Edge Microgateway 配置中添加 oauth.useUpstreamResponse: true 属性。例如:

    oauth:
      allowNoAuthorization: false
      allowInvalidAuthorization: false
      gracePeriod: 10
      useUpstreamResponse: true
  • 140090623 - 在版本 3.0.6 中,新增了一个配置属性 quota.quotaUri。如果您希望通过部署到贵组织的 edgemicro-auth 代理来管理配额,请设置此 config 属性。如果未设置此属性,则配额端点默认为内部 Edge Microgateway 端点。例如:
    edge_config:
      quotaUri: https://%s-%s.apigee.net/edgemicro-auth

    在 3.0.7 版中,edgemicro-auth 已更新为接受此新配置。如需使用 quotaUri 属性,您必须升级到最新的 edgemicro-auth 代理。如需了解详情,请参阅 升级 Edgemicro-auth 代理。

  • 140470888 - 配额调用中添加了 Authorization 标头,以提供身份验证。此外,edgemicro-auth 代理已修改为从配额标识符中移除“组织”。由于配额端点位于客户组织中,因此不再需要配额标识符。
  • 140823165 - 以下属性名称:
    edgemicro:
        keepAliveTimeout

    在版本 3.0.6 中有错误记录。正确的属性名称应如下所示:

    edgemicro:
        keep_alive_timeout
  • 139526406 - 修复了以下 bug:开发者应用具有多个产品时,配额计数会有误。在具有多个产品的应用中,现在可以正确为每个产品强制执行配额。“appName + productName”的组合用作配额标识符。

3.0.6

8 月 29 日(星期四),我们发布了针对 Edge Microgateway 的以下修复和增强功能。

  • 138633700 - 添加了新的配置属性 keepAliveTimeout。通过此属性,您可以设置 Edge Microgateway 超时(以毫秒为单位)。(默认值:5,000 毫秒)

    例如:

    edgemicro:
      keep_alive_timeout: 600
  • 140090623 - 添加了新的配置属性 quotaUri。如果您希望通过部署到贵组织的 edgemicro-auth 代理来管理配额,请设置此配置属性。如果未设置此属性,则配额端点默认为内部 Edge Microgateway 端点。例如:
    edge_config:
      quotaUri: https://your_org-your_env.apigee.net/edgemicro-auth
    

    如需使用此功能,您必须先将最新版本的 edgemicro-auth 代理部署到您的组织。如需了解详情,请参阅 升级 Edgemicro-auth 代理

  • 138722809 - 添加了新的配置属性 stack_trace。通过此属性,您可以控制是否在日志文件中显示堆栈轨迹。例如:
    stack_trace: false

    如果将 stack_trace 设置为 true,系统会在日志中输出堆栈轨迹。如果设置为 false,则系统不会在日志中输出堆栈轨迹。

3.0.5

8 月 15 日(星期四),我们发布了针对 Edge Microgateway 的以下修复和增强功能。

已修复 bug
  • 139005279 - 修复了 edgemicro status 命令未返回正确数量的工作器进程的问题。
  • 138437710 - 修复了 ExitCounter 类中的一个问题,该问题会导致无法写入正确的日志。
常规日志消息改进
  • 139064652 - 添加了为事件和系统日志添加 tracedebug 日志记录级别的功能。目前,我们仅添加了添加这些日志级别的功能。目前,可用的日志级别为 infowarnerror
  • 139064616 - 所有控制台日志语句的日志输出都已标准化。控制台日志记录语句现在包含以下属性:
    • 时间戳
    • 组件名称
    • 进程 ID
    • 控制台日志消息
改进了 JWT 密钥和 Secret 日志消息
  • 138413755 - 改进了以下 CLI 命令的 JWT 密钥以及与 Secret 相关的日志消息:cert、verify、upgradekvm、token、genkeys、revokekeys、rotatekey 和 configure。
改进了超时和连接遭拒错误消息
  • 138413577 - 添加并改进了后端服务超时的错误处理方式。
  • 138413303 - 添加并改进了响应和套接字超时的错误处理。
  • 138414116 - 添加并改进了“连接被拒绝”错误的错误处理方式。

3.0.4

8 月 1 日(星期四),我们发布了针对 Edge Microgateway 的以下修复和增强功能。

  • 134445926 - 改进了内部 Edge Microgateway 身份验证。
  • 137582169 - 解决了启动不需要的进程的问题。多余的进程会导致插件重新加载并使用过多的内存。 Edge Microgateway 现在会将进程数保持在预期限制内。
  • 137768774 - 日志消息改进:
    • 清理了事务(请求)日志。
    • 根据需要添加了更多日志消息。
    • 将事务(请求)日志消息从控制台输出移至相关日志文件。
    • 更新了控制台日志,以使用集中式日志记录功能。
  • 138321133、138320563 - 对配额缓冲区进行的基本内部更改,以实现未来的配额增强。

3.0.3

在 7 月 23 日(星期二),我们发布了针对 Edge Microgateway 的以下修复和增强功能。

  • 日志记录增强功能:现有运行时日志使用新的 eventLog() 函数,以一致的格式捕获和记录运行时数据。日志信息包括:
    • 时间戳(ISO 8601:YYYY-MM-DDTHH:mm:ss.sssZ)。
    • 日志级别(错误、警告或信息)。
    • Hostname - 请求标头中发出请求的主机名。
    • 进程 ID - 如果您运行的是 Node.js 进程集群,则此参数是发生了日志记录的进程的 ID。
    • Apigee 组织名称。
    • 组织中的环境名称。
    • API 代理名称。
    • 客户端 IP 地址。
    • ClientId。
    • 关联 ID(未设置)。
    • Edge Microgateway 组件名称。
    • 自定义消息 - 某些对象可能会输出传递给此错误属性的其他信息。
    • 请求方法(如果是 HTTP 请求)。
    • 响应状态代码(如果是 HTTP 请求)。
    • 错误消息。
    • Error code - 如果对象包含错误代码,则输出在此属性中。
    • 所用时间。
    • 操作系统 行尾标记

    null 属性值会导致空括号 []

    以下示例展示了日志格式:

    Timestamp [level][hostname][ProcessId][Org][Environment][APIProxy][ClientIp][ClientId][][component][customMessage][reqMethod][respStatusCode][errMessage][errCode][timeTaken]

    (137770055)

  • 效果:未根据环境过滤 API 产品。此问题现已解决。(135038879)
  • 其他功能测试集成和代码质量改进。

3.0.2

2019 年 7 月 3 日(星期三),我们发布了针对 Edge Microgateway 的以下修复和增强功能。

代码质量 - 代码已经过质量审核,并已对代码进行了更改,以满足用户要求的质量标准。我们解决了由 JSHint 引起的代码质量错误和警告。因此,我们识别并修复了一些实际的代码错误。所有 Apigee Edge Microgateway 模块均经过此过程。请参阅 microgateway-configmicrogateway-coremicrogateway-pluginsmicrogateway 的 6 月 28 日和 7 月 2 日的提交内容。 所有涉及代码质量更改的模块都已使用内部工具进行了测试,这些工具为客户用例验证 Edge Microgateway 的执行情况。

3.0.1

2019 年 6 月 21 日(星期五),我们发布了针对 Edge Microgateway 的以下修复和增强功能。

  • 134834551 - 更改 Edge Microgateway 支持的 Node.js 版本
    (Node.js 支持的版本:8 和 12;版本 7、9 和 11 处于实验阶段)
  • 134751883 - 在负载下重新加载时,Edge Microgateway 发生崩溃
  • 134518428 - 如果过滤模式不正确,Edge Microgateway 的产品端点返回 5XX
  • 135113408 - 工作器意外终止时应重启
  • 134945852 - OAuth 插件中未使用 tokenCacheSize
  • 134947757 - 在 OAuth 插件中设置 cacheTTL
  • 135445171 - OAuth 中的宽限期计算不正确
  • 使用安装 Edge Microgateway 时提供的 Memored 模块
  • 135367906 - 安全审核

版本 2.5.x

新功能和增强功能 v.2.5.x

(已修复 2.5.38、2019 年 6 月 7 日)

格式不正确的 JWT 会导致工作器在使用令牌缓存时崩溃。在 Edge microgateway-plugins 模块中进行了修复。(b/134672029)

(添加于 2.5.37 中)添加了 CLI 选项 edgemicro-cert -t

通过 edgemicro cert -t 选项,您可以指定 OAuth 令牌以对管理 API 进行身份验证。另请参阅管理证书

(添加 2.5.35 版本)使用 edgemicroctl 添加对调试 Edge Microgateway 的支持。

您可以将 mgdebug 标志与 edgemicroctl 搭配使用。另请参阅 Kubernetes 集成任务

(添加 2.5.35)为 edgemicroctl 启用 Windows 版本。

(添加 2.5.31 版本)新的 Edgemicro-auth/token API

添加了新的 Edgemicro-auth/token API,允许您将 client/secret 作为 Base64 编码的基本授权标头传递,将 grant_type 作为表单参数。请参阅直接获取不记名令牌

(修复 2.5.31)专用配置不遵循令牌标志

解决了以下问题:在 Edge for Private Cloud 上配置 Edge Microgateway 以使用 OAuth2 访问令牌无法正常工作(令牌不受支持)。

Docker:支持使用自签名证书

(新增 2.5.29)如果您使用 Node.js 默认不信任的证书授权机构 (CA),则可以在使用 Edge Microgateway 运行 Docker 容器时使用 NODE_EXTRA_CA_CERTS 参数。如需了解详情,请参阅使用 Node.js 不信任的 CA

Docker:支持 TLS

(添加了 2.5.29 版)在 Docker 容器中运行的 Edge Microgateway 现在支持对 Edge Microgateway 服务器的传入请求(北向请求)和从 Edge Microgateway 到目标应用的传出请求(南向请求)使用 TLS。

以下示例详细介绍了如何设置这些 TLS 配置:

在这些示例中,您将了解如何使用容器装载点 /opt/apigee/.edgemicro 加载证书,这些证书随后会在 Edge Microgateway 配置文件中引用。

Docker:支持请求代理

(添加版本 2.5.27)如果您在 Docker 容器中运行 Edge Microgateway,则可以使用以下选项来控制微网关在防火墙后面运行时的代理行为:

  • HTTP_PROXY
  • HTTPS_PROXY
  • NO_PROXY

如需了解详情,请参阅将 Edge Micro 作为 Docker 容器运行

Docker:更新了插件说明

(添加版本 2.5.27)如果您在 Docker 容器中运行 Edge Microgateway,则现在有两个插件部署选项。一种新的方法是使用 Docker 装载点。之前存在的另一个选项基本保持不变;但是,Dockerfile 已更新。如需了解详情,请参阅以下链接:

为 KVM 升级命令提供新的 OAuth 令牌支持

(添加版本 2.5.27)您可以通过 upgradekvm 命令使用 OAuth 令牌。如需了解详情,请参阅升级 KVM

在 Edge Analytics 中隔离 API

(添加版本 2.5.26)借助新的分析插件标志,您可以隔离特定的 API 路径,使其在 Edge Analytics 信息中心内显示为单独的代理。例如,您可以隔离健康检查 API,以避免将其与实际的 API 调用混淆。如需了解详情,请参阅在分析中排除路径

配置本地代理

(新增 2.5.25)使用本地代理,您无需在 Apigee Edge 上手动创建微网关感知型代理。相反,微网关将使用本地代理的基础路径。如需了解详情,请参阅使用本地代理模式

使用独立模式

(添加了 2.5.25 版)您可以运行 Edge Microgateway 与任何 Apigee Edge 依赖项完全断开连接。这种场景称为独立模式,可让您在没有互联网连接的情况下运行和测试 Edge Microgateway。请参阅在独立模式下运行 Edge Microgateway

撤消密钥

(添加于 2.5.19)新增了一个 CLI 命令,用于撤消 Edge Microgateway 配置的密钥和密钥凭据。

edgemicro revokekeys -o [organization] -e [environment] -u [username] -k [key] -s [secret]
如需了解详情,请参阅撤消密钥

Docker 支持

(添加了 2.5.19)您现在可以将最新的 Edge Microgateway 版本下载为 Docker 映像

docker pull gcr.io/apigee-microgateway/edgemicro:latest

Kubernetes 支持

(添加版本 2.5.19)您可以将 Edge Microgateway 作为服务或辅助信息文件网关部署在 Kubernetes 集群中部署的服务前面。请参阅将 Edge Microgateway 与 Kubernetes 集成概览

支持 TCP nodelay 选项

(添加了 2.5.16 版本)Edge Micro 配置中新增了一项配置设置 nodelay

默认情况下,TCP 连接在将数据发送出去之前使用 Nagle 算法来缓冲数据。将 nodelay 设置为 true 会禁止此行为(每次调用 socket.write() 时数据都会立即触发数据)。如需了解详情,另请参阅 Node.js 文档

如需启用 nodelay,请修改 Edge Micro 配置文件,如下所示:

edgemicro:
  nodelay: true
  port: 8000
  max_connections: 1000
  config_change_poll_interval: 600
  logging:
    level: error
    dir: /var/tmp
    stats_log_interval: 60
    rotate_interval: 24

用于永久监控的新 CLI 选项

(添加了 2.5.12)向 edgemicro forever 命令中添加了新参数。通过这些参数,您可以指定 forever.json 文件的位置,还可以启动或停止 Forever 后台进程。另请参阅永久监控

参数说明
-f, --file指定 forever.json 文件的位置。
-a, --action可以选择 startstop。默认值为 start。

示例:

要永久启动,请按以下步骤操作:

edgemicro forever -f ~/mydir/forever.json -a start

如需永久停止,请按以下步骤操作:

edgemicro forever -a stop

JWT 密钥轮替

新增了一项功能,可让您轮替公钥/私钥对,以生成用于 Edge Microgateway 上 OAuth 安全性的 JWT 令牌。请参阅 轮替 JWT 密钥

过滤下载的 API 代理

默认情况下,Edge Microgateway 会下载 Edge 组织中以命名前缀“edgemicro_”开头的所有代理。您可以更改此默认设置,以下载名称与某个模式匹配的代理。请参阅 过滤下载的代理

指定不使用 API 代理的产品

在 Apigee Edge 中,您可以创建不包含任何 API 代理的 API 产品。 此产品配置允许与该产品关联的 API 密钥与贵组织中部署的任何代理一起使用。从 2.5.4 版开始,Edge Microgateway 支持此产品配置。

支持永久监控

Edge Microgateway 有一个 forever.json 文件,您可以配置该文件来控制 Edge Microgateway 的重启次数和间隔时间。此文件配置一项名为 forever-monitor 的服务,该服务以程序化方式管理 Forever。请参阅 永久监控

集中管理 Edge Micro 配置文件

如果运行多个 Edge Microgateway 实例,您可能希望在一个位置管理它们的配置。为此,您可以指定一个 HTTP 端点,Edge Micro 可从该端点下载其配置文件。请参阅 指定配置文件端点

支持永久 CLI 选项

(添加 2.5.8)使用 edgemicro forever [package.json] 命令指定 forever.json 文件的位置。添加此命令之前,配置文件必须位于 Edge Microgateway 根目录中。

例如:

edgemicro forever ~/mydir/forever.json

添加了用于重新加载命令的 configUrl 选项

(添加版本 2.5.8)您现在可以将 --configUrl-u 选项与 edgemicro reload 命令搭配使用。

JWT 时间差异的宽限期

(新增 2.5.7)OAuth 配置中的 gracePeriod 属性有助于防止由于您的系统时钟与 JWT 授权令牌中指定的不早于 (nbf) 或颁发时间 (iat) 时间之间存在细微差异而引发的错误。请将此属性设置为允许这种差异的秒数。请参阅 OAuth 属性

(新增 2.5.7)OAuth 配置中的 gracePeriod 属性有助于防止由于您的系统时钟与 JWT 授权令牌中指定的不早于 (nbf) 或颁发时间 (iat) 时间之间存在细微差异而引发的错误。请将此属性设置为允许这种差异的秒数。请参阅 OAuth 属性

v2.5.x 中修复的错误

  • (问题 #236)修复了清除缓存时的拼写错误。
  • (问题 234)重新加载 Edge Microgateway 2.5.35 的崩溃。
  • (问题 #135)使用 -v 选项时出现无效的虚拟主机引用“secure”错误。此修复会在部署之前修改 Edgemicro-auth 代理,以确保虚拟主机与“-v”标志中指定的内容完全匹配。此外,您可以为虚拟主机指定任意数量的名称和任何名称(不再受限于默认且安全的虚拟主机)。
  • (问题 #141)edgemicro refresh 命令不支持配置文件选项 -c。此问题已解决。
  • (问题 142)Edge Microgateway 在安装时投诉加密算法已弃用。此问题已解决。
  • (问题 145)Edge Microgateway 的配额无效。此问题已解决。
  • (Apigee 社区问题: https://community.apigee.com/questions/33149/emg-jwt-token-validated-against-禁止-api-proxies-a.html#answer-33336) 根据 OAUTH 中的 API 代理和资源 URI 验证了 JWT 令牌。此问题现已解决。
  • (Apigee 社区问题:https://community.apigee.com/questions/47846/microgateway-not-working-with-oauth.html)Microgateway 不支持 OAuth。此问题已解决。
  • 修复了 Windows 上的 pidPath。
  • (问题 #157)已修复导致以下错误消息的问题:未定义 ReferenceError: deployProxyWithPassword
  • (问题 169)更新 Node.js 依赖项 (npm 审核)
  • edgemicro-auth 代理现在使用 Edge JWT 政策。该代理不再依赖于 Node.js 来提供 JWT 支持。

版本 2.4.x

新功能和增强功能 v.2.4.x

1. 为 Edgemicro-auth 代理设置自定义别名 (PR 116)

您可以更改 edgemicro-auth 代理的默认基本路径。默认情况下,基本路径为 /edgemicro-auth。要更改该设置,请在 edgemicro configure 命令中使用 -x 标志。

例如:

edgemicro configure -x /mypath …


2. 对基路径的通配符支持 (PR 77)

您可以在 edgemicro_* 代理的基本路径中使用一个或多个“*”通配符。例如,/team/*/members 的基本路径允许客户端调用 https://[host]/team/blue/membershttps://[host]/team/green/members,而无需创建新的 API 代理来支持新团队。请注意,不支持 /**/

重要提示:Apigee 不支持将通配符“*”用作基本路径的第一个元素。例如,不支持以下内容:/*/search。

3. 向 CLI 添加了自定义配置路径以用于私有云配置 (PR 99)

默认情况下,microgateway 配置文件位于 ./config/config.yaml 中。在 init、configure 和 start 命令中,您现在可以在命令行中使用 -c--configDir 标志指定自定义配置路径。修复了无法识别用于私有云安装的自定义配置目录的问题。

例如:

edgemicro start -o docs -e test -k abc123 -s xyz456 -c /home/microgateway/config

4:遵从 *_PROXY 变量 (PR 61)

如果 Edge Microgateway 安装在防火墙后面,并且无法与公有云中的 Apigee Edge 通信,请考虑以下两种方案:

选项 1:

第一个选项是在 microgateway 配置文件中将 edgemicro:proxy_tunnel 选项设置为 true:

edge_config:
   proxy: http://10.224.16.85:3128
   proxy_tunnel: true

proxy_tunneltrue 时,Edge Microgateway 使用 HTTP CONNECT 方法通过单个 TCP 连接传送 HTTP 请求。(如果用于配置代理的环境变量启用了 TLS,也会出现这种情况。)

选项 2:

第二个选项是指定代理,并在微网关配置文件中将 proxy_tunnel 设置为 false。例如:

edge_config:
   proxy: http://10.224.16.85:3128
   proxy_tunnel: false

在这种情况下,您可以设置以下变量来控制要使用的每个 HTTP 代理的主机,或哪些主机不应处理 Edge Microgateway 代理:HTTP_PROXYHTTPS_PROXYNO_PROXY。您可以将 NO_PROXY 设置为 Edge Microgateway 不应代理的网域列表(以英文逗号分隔)。例如:

export HTTP_PROXY='http://localhost:3786'
export HTTPS_PROXY='https://localhost:3786'

如需详细了解这些变量,请参阅:

https://www.npmjs.com/package/request#controlling-proxy-behaviour-using-environment-variables


5:为目标请求设置自定义超时 (PR 57)

您可以使用以下配置为目标请求设置自定义超时:

edgemicro:
    request_timeout: 10

超时设置以秒为单位。如果发生超时,Edge Microgateway 会返回 504 状态代码。

6. 遵从目标响应中的自定义 HTTP 状态消息 (PR 53)

Edge Microgateway 会遵循在目标响应上设置的自定义 HTTP 状态消息。在之前的版本中,从目标发送的状态消息已被 Node.js 默认值替换。

7. X-Forwarded-For 标头可以为分析设置 client_ip

如果存在,X-Forwarded-For 标头将设置 Edge Analytics 中报告的 client_ip 变量。此功能可让您了解向 Edge Microgateway 发送请求的客户端的 IP 地址。

8. OAuth 插件变更

OAuth 插件支持 API 密钥验证和 OAuth 访问令牌验证。在做出此变更之前,该插件接受两种安全形式。进行此项更改后,您可以仅允许使用其中一种安全模型(同时保持向后兼容性)。

OAuth 插件添加了两个新标志:

  • allowOAuthOnly - 如果设置为 true,则每个 API 都必须带有包含不记名访问令牌的授权标头。

  • allowAPIKeyOnly - 如果设为 true,则每个 API 都必须包含带有 API 密钥的 x-api-key 标头(或自定义位置)。

您可以在 Edge Microgateway 配置文件中设置这些标志,如下所示:

oauth:
    allowNoAuthorization: false
    allowInvalidAuthorization: false
    keep-authorization-header: false
    allowOAuthOnly: false
    allowAPIKeyOnly: false

9. 改进了 Edgemicro-auth 代理 (PR 40)

改进了 edgemicro-auth 代理。在这些更改之前,代理将密钥存储在加密保险柜 Edge Secure Store 中。现在,该代理将密钥存储在 Edge 的加密键值对映射 (KVM) 中。

10. 重写插件中的默认目标网址 (PR 74)

您还可以替换目标端点端口,并选择 HTTP 或 HTTPS。修改插件代码中的以下变量:req.targetPortreq.targetSecure。要选择 HTTPS,请将 req.targetSecure 设置为 true;对于 HTTP,请将其设置为 false。如果您将 req.targetSecure 设置为 true,请参阅此讨论会话了解详情。

11. 对 OAuth 令牌身份验证的初步支持 (PR 125)

您可以将 Edge Microgateway 配置为使用 OAuth 令牌(而不是用户名/密码)进行身份验证。如需使用 OAuth 令牌,请在 edgemicro configure 命令中使用以下参数:

-t, --token <token>

例如:

edgemicro configure -o docs -e test -t <your token>

v2.4.3 修复了一些 bug

  • 修复了需要付费组织才能正确运行 Edgemicro-auth 代理的问题。现在,您还可以将 Edge Microgateway 与试用组织搭配使用。(PR 5)
  • 修复了流尚未完成数据处理,但最终处理程序仍然在执行的问题。这会导致系统发送部分响应。(PR 71)
  • 修复了无法识别用于私有云安装的自定义配置目录的问题。(PR 110)
  • 修复了客户端与 Edge Microgateway 之间的双向 SSL 的问题。(PR 70)
  • 修复了代理基本路径上必须有尾部斜杠才能使 API 密钥验证正常运行的问题。现在,基本路径末尾不需要使用尾随斜杠。(PR 48)

版本 2.3.5

新功能和增强功能 v.2.3.5

代理过滤

您可以过滤 Edge Microgateway 实例将处理哪些微网关感知代理。Edge Microgateway 启动时,它会下载关联的组织中所有能够感知微网关的代理。使用以下配置来限制微网关将处理的代理。例如,以下配置将微网关将处理的代理限制为三个:edgemicro_proxy-1edgemicro_proxy-2edgemicro_proxy-3

proxies:
  - edgemicro_proxy-1
  - edgemicro_proxy-2
  - edgemicro_proxy-3

Google Analytics(分析)数据遮盖

通过新配置,您可以阻止请求路径信息显示在 Edge 分析中。将以下内容添加到微网关配置中,以遮盖请求 URI 和/或请求路径。请注意,URI 由请求的主机名和路径部分组成。

analytics:
  mask_request_uri: 'string_to_mask'
  mask_request_path: 'string_to_mask'

版本 2.3.3

新功能和增强功能 v.2.3.3

以下是此版本的新功能和增强功能。

停用自动更改投票

您可以通过在微网关配置中设置以下特性来关闭自动更改轮询功能:

disabled_config_poll_interval: true

默认情况下,定期轮询会选取在 Edge 上所做的更改(对产品、微网关感知代理的更改等)以及对本地配置文件的更改。默认轮询间隔为 600 秒(五分钟)。

在插件中重写目标网址

您可以通过在插件代码中修改以下变量来动态替换插件中的默认目标网址:req.targetHostnamereq.targetPath

新插件函数签名

我们添加了新的插件函数签名,以参数形式提供目标响应。添加后,插件可以更轻松地访问目标响应。

function(sourceRequest, sourceResponse, targetResponse, data, cb)

简化了默认日志记录输出

默认情况下,日志记录服务现在会忽略下载的代理、产品和 JWT 的 JSON。您可以将这些对象更改为默认输出这些对象,只需在启动 Edge Microgateway 时设置 DEBUG=* 即可。例如:

DEBUG=* edgemicro start -o docs -e test -k abc123 -s xyz456

向 CLI 添加了自定义配置路径

默认情况下,microgateway 配置文件位于 ./config/config.yaml 中。在 init、configuration 和 start 命令中,您现在可以在命令行中指定自定义配置路径。例如:

edgemicro start -o docs -e test -k abc123 -s xyz456 -c /home/microgateway/config

v2.3.3 修复了一些 bug

  • 修复了在大型请求/响应期间发生的内存泄漏问题。
  • 修复了插件执行顺序。现在,它的行为方式与文档中说明的方式一致。
  • 对于 GET 请求,插件累积请求插件不再挂起。
  • 修复了累积响应插件中缺少响应正文导致错误的问题。

版本 2.3.1

安装说明

某些旧版 Edge Microgateway 可让您通过下载 ZIP 文件来安装该软件。系统已不再支持这些 ZIP 文件。如需安装 Edge Microgateway,您必须使用:

npm install -g edgemicro

如需了解详情,请参阅安装主题

新功能和增强功能 v.2.3.1

以下是此版本的新功能和增强功能。

过滤代理

通过新配置,您可以过滤 Edge Microgateway 在启动时加载哪些代理。之前,微网关加载了从您在 Edgemicro 配置命令中指定的 Edge 组织/环境拉取的所有微网关感知代理(名为 Edgemicro_* 的代理)。通过这项新功能,您可以过滤此代理列表,使 Edge Microgateway 仅加载您指定的代理。如下所示,将代理元素添加到微网关配置文件中:

edge micro:
proxies:
    - edgemicro_[name]
    - edgemicro_[name]
    ...

例如,假设您的 Edge 组织/环境中有 50 个 edgemicro_* 代理,包括名为 edgemicro_fooedgemicro_bar 的代理。您可以指示微网关仅使用这两个代理,如下所示:

edge micro:
proxies:
    - edgemicro_foo
    - edgemicro_bar

启动时,微网关只能调用指定的代理。如果尝试调用从 Edge 组织/环境下载的其他微网关感知型代理,则将导致错误。

在插件中设置目标请求标头

如果您想添加或修改目标请求标头,有两种基本模式可供选择:一种是传入请求包含数据(如在 POST 请求中),另一种是不含数据(如在简单的 GET 请求中)。

假设传入请求包含数据,并且您希望为目标请求设置请求标头。在以前的 Edge Microgateway 版本中,在这种情况下无法可靠地设置目标标头。

此模式的关键是首先累积来自客户端的所有传入数据。然后,在 onend_request() 函数中,使用新函数 request.setOverrideHeader(name, value) 自定义标头。

以下示例插件代码展示了如何执行此操作。在 onend_request 中设置的标头将发送到目标:

module.exports.init = function(config, logger, stats) {


  function accumulate(req, data) {
    if (!req._chunks) req._chunks = [];
    req._chunks.push(data);
  }

  return {

    ondata_request: function(req, res, data, next) {
      if (data && data.length > 0) accumulate(req, data);
      next(null, null);
    },

    onend_request: function(req, res, data, next) {
      if (data && data.length > 0) accumulate(req, data);
      var content = Buffer.concat(req._chunks);
      delete req._chunks;
      req.setOverrideHeader('foo', 'bar');
      req.setOverrideHeader('content-length', content.length);
      next(null, content);
    },


    onerror_request: function(req, res, data, next) {
      next(null, null);
    }

  };

}

如果请求不包含数据,您可以在 onrequest() 处理程序中设置目标标头。此模式并不新鲜 - 它之前已记录过,并且已在 Edge Microgateway 提供的示例插件中使用。

onrequest: function(req, res, next) {
      debug('plugin onrequest');
      req.headers['x-foo-request-id'] = "bar";
      req.headers['x-foo-request-start'] = Date.now();
      next();
    }

零停机重新加载功能

更改 Edge Microgateway 的配置后,您可以加载配置而不丢弃任何消息。进行此更改后,Edge Microgateway 始终以集群模式启动,并且 --cluster 选项已从 edgemicro start 命令中移除。

此外,还新增了三个 CLI 命令。您必须从执行 Edgemicro start 命令的同一目录运行以下命令:

  • edgemicro status - 检查 Edge Microgateway 是否正在运行。
  • edgemicro stop - 停止 Edge Microgateway 集群。
  • edgemicro reload - 重新加载 Edge Microgateway 配置,而不停机。

自动重新加载配置,零停机

Edge Microgateway 会定期加载新配置,并在发生更改时执行重新加载。轮询会纳入对 Edge 所做的任何更改(对产品、微网关感知代理的更改等)以及对本地配置文件所做的更改。默认轮询间隔为 600 秒(五分钟)。您可以按如下方式更改微网关配置文件中的默认值:

edgemicro:
    config_change_poll_interval: [seconds]

向 CLI 添加了版本信息

CLI 中添加了 --version 标志。如需获取 Edge Microgateway 的当前版本,请使用以下命令:

edgemicro --version

新的 Edge Microgateway 服务器 SSL 选项

除了 keycert 之外,Edge Microgateway 现在还支持以下服务器 SSL 选项:

选项 说明
pfx pfx 文件的路径,该文件包含客户端的私钥、证书和 CA 证书(PFX 格式)。
passphrase 包含私钥或 PFX 的密码的字符串。
ca 指向包含 PEM 格式的可信证书列表的文件的路径。
ciphers 描述要使用的加密的字符串,以“:”分隔。
rejectUnauthorized 如果为 true,则根据提供的 CA 列表验证服务器证书。如果验证失败,则会返回错误。
secureProtocol 要使用的 SSL 方法。例如,SSLv3_method 将 SSL 强制更新到版本 3。
servername SNI(服务器名称指示)TLS 扩展的服务器名称。

将日志文件发送到 stdout

您可以使用新的配置设置将日志数据发送到标准输出:

edgemicro:
  logging:
    to_console: true  

请参阅 管理日志文件

版本 2.1.2

以下是此版本的新功能和增强功能。

允许使用自定义 API 端点进行配置

授权代理新增了可配置端点,支持使用自定义身份验证服务。这些端点包括:

  • edgeconfig:verify_api_key_url
  • edgeconfig:products

如需了解详情,请参阅 使用自定义身份验证服务

版本 2.1.1

以下是此版本的新功能和增强功能。

部署跨平台兼容的身份验证代理

我们进行了一项增强功能,使用于将 Edge Microgateway 授权代理部署到 Edge 的命令在 Windows 系统上与 Windows 系统兼容。

版本 2.1.0

新功能和增强功能 v.21.0

新功能和增强功能如下:

指定客户端 SSL/TLS 选项

您可以使用一组新的配置选项来指定用于与目标的 SSL/TSL 连接的客户端选项。请参阅 使用客户端 SSL/TSL 选项

版本 2.0.11

安装说明 v2.0.11

某些旧版 Edge Microgateway 可让您通过下载 ZIP 文件来安装该软件。系统已不再支持这些 ZIP 文件。如需安装 Edge Microgateway,您必须使用:

npm install -g edgemicro

如需了解详情,请参阅安装主题

新功能和增强功能 v.2.0.11

新功能和增强功能如下:

在启动时指定端口

通过启动命令,您可以指定端口号以替换配置文件中指定的端口。您还可以使用 PORT 环境变量指定端口号。如需了解详情,请参阅 start 命令

可以选择保留身份验证标头

新的配置设置 keepAuthHeader 可用于保留请求中发送的 Authorization 标头。如果设置为 true,系统会将 Auth 标头传递给目标。请参阅 OAuth 属性

能够使用自定义授权服务

如果要使用自己的自定义服务来处理身份验证,请将 Edge Microgateway 配置文件中的 authUri 值更改为指向您的服务。如需了解详情,请参阅 使用自定义身份验证服务

版本 2.0.4

Edge Microgateway v.2.0.4 已于 2016 年 5 月 25 日发布。

新功能和增强功能 v2.0.4

以下是此版本中的新功能和增强功能。

支持产品中的资源路径

Edge Microgateway 现在支持产品中的资源路径。通过资源路径,您可以根据代理路径后缀限制对 API 的访问。如需详细了解如何创建产品和配置资源路径,请参阅创建 API 产品

对 npm global install 的支持

您现在可以使用 npm -g (global) 选项安装 Edge Microgateway。如需详细了解此选项,请参阅 npm 文档

版本 2.0.0

Edge Microgateway v2.0.0 已于 2016 年 4 月 18 日发布。

新功能和增强功能 v.2.0.0

以下是此版本中的新功能和增强功能。

单进程服务器

Edge Microgateway 现在是单进程服务器。它不再使用双进程模型,在这种模式下,一个进程(以前称为“代理”)启动 Edge Microgateway,即第二个进程。新的架构使自动化和容器化变得更轻松。

命名空间型配置文件

配置文件现在使用组织和环境设置命名空间,以便多个 Microgateway 实例可以在同一主机上运行。运行 Edge Microgateway config 命令后,您可以在 ~/.edgemicro 中找到配置文件。

新的环境变量

现在有 4 个环境变量:EDGEMICRO_ORG、EDGEMICRO_ENV、EDGEMICRO_KEY、EDGEMICRO_SECRET。如果在系统上设置这些变量,则在使用命令行界面 (CLI) 配置和启动 Edge Microgateway 时,无需指定它们的值。

缓存的配置

Edge Microgateway 在未连接到 Apigee Edge 的情况下重启时会使用缓存的配置文件。

集群模式

现提供了以集群模式启动 Edge Microgateway 的选项。借助集群模式,您可以利用多核系统。微网关采用 Node.js 集群模块来实现此功能。如需了解详情,请参阅 Node.js 文档。

v2.0.0 中修复了 bug

插件事件生命周期现在可以正确处理异步代码,其中包含具有新回调的代码。

版本 1.1.2

Edge Microgateway v. 1.1.2 已于 2016 年 3 月 14 日发布。

新功能和增强功能 v.1.1.2

以下是此版本中的新功能和增强功能。

性能改进

Edge Microgateway 现在会正确使用 Node.js HTTP 代理,以获得更好的连接池。此增强功能可提升高负载下的性能和整体稳定性。

远程调试程序支持

您可以将 Edge Microgateway 配置为使用远程调试程序(例如 node-inspector)运行。

新的配置文件位置

配置 Edge Microgateway 时,agent/config/default.yaml 文件现在会复制到 ~./edgemicro/config.yaml

日志文件轮播

通过新的配置属性,您可以指定 Edge Microgateway 日志的轮替间隔。

v1.1.2 修复了一些 bug

v. 1.1.2 中修复了以下错误。

说明
与本地 Edge 搭配使用的 Edgemicro 内部代理的 Java 标注现在使用正确的 MGMT 服务器。
从代理中移除 Typescript 依赖项。
修复了使用精简部署选项时出现的 CLI bug。
修复了证书逻辑依赖项引用。