Edge Microgate 版本说明

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

版本 3.3.x

修复了一些 bug,并进行了一些改进(版本 3.3.x)

3.3.5

2024 年 12 月 20 日星期五,我们发布了 Edge Microgateway 的以下修复程序和增强功能。

组件版本

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

microgateway core config 插件 edgeauth
3.3.5 3.3.5 3.3.5 3.3.5 3.2.2

修复了一些 bug 并进行了一些改进

问题 ID 类型 说明
383024578 功能

我们添加了对 Node.js 22 版的支持,并移除了对 16 版的支持。如果您使用的是 Node.js v18,Edge Microgateway 会在启动时输出以下错误消息:

current nodejs version is  18.x.x Note, v18.x.x will be out of support soon, see https://docs.apigee.com/release/notes/edge-microgateway-release-notes-0

如果您运行的是较低版本的 Node.js,则会看到以下错误消息:

You are using a version of NodeJS that is not supported

修复了安全问题

  • CVE-2024-21538
  • CVE-2024-45590
  • CVE-2019-3844
  • CVE-2019-12290
  • CVE-2020-1751
  • CVE-2018-12886
  • CVE-2023-50387
  • CVE-2019-3843
  • CVE-2022-4415
  • CVE-2021-3997

修复了一些 bug,并进行了一些改进(版本 3.3.x)

3.3.4

2024 年 9 月 18 日,我们发布了 Edge Microgateway 的以下修复和增强功能。

组件版本

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

microgateway core config 插件 edgeauth
3.3.4 3.3.4 3.3.4 3.3.4 3.2.2

修复了一些 bug 并进行了一些改进

问题 ID 类型 说明
675987751 bug

修复了 Edge Microgateway 未记录客户端 IP 地址的问题。

修复了安全问题

  • CVE-2021-23337
  • CVE-2024-4068
  • CVE-2020-28469
  • CVE-2020-28503

3.3.3

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

组件版本

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

microgateway core config 插件 edgeauth
3.3.3 3.3.3 3.3.3 3.3.3 3.2.2

修复了一些 bug 并进行了一些改进

问题 ID 类型 说明
315939218 已移除

从 Edge Microgateway 中移除了 Eureka 客户端插件。移除此功能不会影响 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 config 插件 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 config 插件 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

修复了以下问题:在将响应从 JSON 转换为 XML 时,json2xml 插件会抛出解析错误,并且在与 accumulate-response 插件结合使用时也会出现此问题。

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 config 插件 edgeauth
3.3.0 3.3.0 3.3.0 3.3.0 3.2.2

修复了一些 bug 并进行了一些改进

问题 ID 类型 说明
219556824 已知问题 Edge Microgateway 网关 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

修复了一些 bug 并进行了一些改进(版本 3.2.x)

3.2.3

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

组件版本

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

microgateway core config 插件 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 之前的软件包 copy-props 容易通过主要功能遭到原型污染。
CVE-2021-23343 所有版本的软件包 path-parse 都容易受到通过 splitDeviceRe、splitTailRe 和 splitPathRe 正则表达式进行的正则表达式拒绝服务 (ReDoS) 攻击。 ReDoS 在最糟糕的情况下具有多项式时间复杂性。

3.2.2

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

组件版本

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

microgateway core config 插件 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,容器会默认将标准输出和错误输出重定向到位于容器中位置 ${APIGEE_ROOT}/logs/edgemicro.log 的文件。

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

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

183057665 功能 使 edgemicro.pidedgemicro.sock 文件路径可配置。

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

191352643 功能 Edge Microgateway 的 Docker 映像已更新为使用 NodeJS 版本 12.22。 请参阅使用 Docker 部署 Edge Microgateway

修复了安全问题

问题 ID 说明
CVE-2021-28860 在 v0.5.1 之前的 Node.js mixme 中,攻击者可以通过 mutate() 和 merge() 函数通过“__proto__”添加或更改对象的属性。系统会直接将受污染的属性分配给程序中的每个对象。这会导致该计划的可用性受到威胁,可能会导致拒绝服务 (DoS) 攻击。
CVE-2021-30246 在 Node.js 10.1.13 之前的 jsrsasign 软件包中,系统会错误地将某些无效的 RSA PKCS#1 v1.5 签名识别为有效。注意:目前没有已知的实际攻击。
CVE-2021-23358 1.13.0-0 及更低版本、1.3.2 及更低版本的 underscore 软件包容易通过模板函数遭到任意代码注入,尤其是在作为参数传递的变量属性未经过净化时。
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 config 插件 edgeauth
3.2.1 3.2.1 3.2.1 3.2.1 3.2.1

修复了一些 bug 并进行了一些改进

问题 ID 类型 说明
180362102 bug 修复了 JWK 密钥值为 null 导致应用失败的问题。

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

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

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

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

179674670 功能 添加了一项新功能,可让您根据产品状态代码过滤 JWT 中放置的 API 产品列表。

API 产品有三种状态代码:待处理、已批准和已撤消。 我们在 edgemicro-auth 代理的 Set JWT Variables 政策中添加了一个名为 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 中或通过环境变量传递的密钥和密文值会显示在进程浏览器命令行参数中。

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

为了针对环境变量场景解决此问题,值不再显示在进程浏览器命令行参数中。

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

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

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

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 config 插件 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_id。然后,x-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

修复了一些 bug 并进行了一些改进(版本 3.1.x)

3.1.8

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

组件版本

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

microgateway core config 插件 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 流程会生成没有 apiProductList 的 JWT。

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

API 产品级范围未提供给自定义插件,也没有写入缓存配置文件。如需了解如何向插件提供作用域详细信息,请参阅 插件 init() 函数简介

169810710 功能 保存在缓存配置文件中的密钥和密文。

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

170708621 功能 无法停用 Google Analytics 插件。

在之前的微网关版本中,分析插件默认处于启用状态,并且无法停用。在版本 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 config 插件 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 响应(由过期或无效令牌导致)。

132194290 bug 当 Apigee Edge 拒绝某些 Google Analytics 记录时,这些 Google Analytics 记录会被舍弃。

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 accesscontrol 插件未正确处理“允许”和“拒绝”部分。

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

3.1.6

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

组件版本

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

microgateway core config 插件 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 上的 新插件指标 README。

159396879 bug 移除了未使用的软件包 Helper
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 config 插件 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

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

修复了无法拉取微网关感知型产品的问题。此问题仅存在于 Edge for Private Cloud 安装中。

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 config 插件 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 config 插件 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-authedgemicro verify 命令无法正常运行。
  • 151284716 - 进行了一项增强,以便在重新加载期间重启 worker 时更快地关闭服务器连接。
  • 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 config 插件 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 config 插件 edgeauth
3.1.0 3.1.0 3.1.0 3.0.12 3.0.9

修复了一些 bug 并进行了一些改进

  • 144187500 - 触发 quotas.failOpen 标志时,系统会记录一个新的 WARN 级别事件。 如果发生配额处理错误,或者向 Edge 发出的“配额应用”请求未能更新远程配额计数器,系统就会触发此标志。在这种情况下,系统将仅根据本地计数处理配额,直到下次成功进行远程配额同步。以前,只有在日志级别设置为 DEBUG 时,系统才会记录此事件。

    例如:

    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 的日志级别已更改为“信息”级别。
  • 146019878 - 修复了 Edge 分析中为“API 代理性能”计算的延迟时间与 Edge Microgateway sourceResponse/targetResponse 日志事件之间的差异。现在,Edge Analytics 和 Microgateway 日志事件中的延迟时间一致。
  • 与模式匹配逻辑相关的更改:
    • 147027862 - 更新了 oauth 插件,以支持 API 产品中指定的以下资源路径匹配模式:
      • /{literal}**
      • /{literal}*
      • 上述两种模式的任意组合

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

    • 145644205 - 更新了 apiKeys 插件的模式匹配逻辑,使其与 oauth 插件保持一致。
  • 143488312 - 修复了以下问题:客户端 ID 参数中的前导或尾随空格会导致为 OAuth 令牌和 API 密钥请求创建的 JWT 产品列表为空。
  • 145640807 和 147579179 - 添加了一项新功能,允许名为“同步器”的特殊 Edge Microgateway 实例从 Apigee Edge 检索配置数据并将其写入本地 Redis 数据库。然后,可以将其他微网关实例配置为从数据库读取其配置数据。此功能可为 Edge Microgateway 增强弹性。 这样,微网关实例便无需与 Apigee Edge 通信即可启动和运行。如需了解详情,请参阅使用同步器

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

版本 3.0.x

修复了一些 bug 并进行了一些改进(版本 3.0.x)

3.0.10

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

组件版本

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

microgateway core config 插件 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 config 插件 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 记录。例如:

    {
        "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 config 插件 edgeauth
3.0.8 3.0.6 3.0.6 3.0.9 3.0.6

修复了一些 bug 并进行了一些改进

  • 140025210 - 添加了新的“fail open”功能。如果因连接错误而无法成功向 edgemicro-auth 代理发出 API 密钥验证调用,导致已过期的 JWT 令牌无法刷新,则此功能可让 API 处理继续进行。

    借助此功能,您可以设置宽限期,在宽限期内,旧令牌会保留在缓存中并被重复使用。借助此功能,Edge Microgateway 可以在临时连接失败时继续处理请求。当连接恢复且成功调用 Verify API Key 后,系统会提取新的 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 密钥和密文。Edge Microgateway 已更新,以便在每次发出 Verify API Key 请求时始终发送密钥和密文。此更改可防止客户端仅使用 API 密钥获取 JWT。
  • 140090250 - 进行了更新,以添加了配额处理的诊断日志记录。经过此项更改,现在可以将 quoto 日志输出与 Edge Microgateway 的其余日志相关联。

3.0.7

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

组件版本

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

microgateway core config 插件 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 代码,具体取决于错误。

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

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

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

  • 140470888 - 向配额调用添加了授权标头,以提供身份验证。 此外,我们还修改了 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 超时(以毫秒为单位)。(默认:5000 毫秒)

    例如:

    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 命令未返回正确的 Worker 进程数量的问题。
  • 138437710 - 修复了 ExitCounter 类中导致无法写入正确日志的问题。
改进了常规日志消息
  • 139064652 - 添加了为事件日志和系统日志添加 tracedebug 日志记录级别的功能。目前,我们仅添加了添加这些日志级别的功能。目前,可用的日志级别包括 infowarnerror
  • 139064616 - 为所有控制台日志语句标准化了日志输出。控制台日志记录语句现在包含以下属性:
    • 时间戳
    • 组件名称
    • 进程 ID
    • 控制台日志消息
改进了 JWT 密钥和 Secret 日志消息
  • 138413755 - 改进了以下 CLI 命令的 JWT 密钥和密钥相关日志消息: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)。
    • 日志级别(错误、警告或信息)。
    • 主机名 - 请求标头中的请求主机名。
    • 进程 ID - 如果您运行的是 Node.js 进程集群,则这是发生日志记录的进程的 ID。
    • Apigee 组织名称。
    • 组织中的环境名称。
    • API 代理名称。
    • 客户端 IP 地址。
    • ClientId。
    • 关联 ID(目前未设置)。
    • Edge Microgateway 组件名称。
    • 自定义消息 - 某些对象可能会输出传递给此错误属性的其他信息。
    • 请求方法(如果是 HTTP 请求)。
    • 响应状态代码(如果是 HTTP 请求)。
    • 错误消息。
    • 错误代码 - 如果对象包含错误代码,系统会在此属性中输出该代码。
    • 所用时间。
    • 操作系统 行尾标记

    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 模块都经过了此流程。请参阅 6 月 28 日和 7 月 2 日针对 microgateway-configmicrogateway-coremicrogateway-pluginsmicrogateway 的提交内容。 所有代码质量发生更改的模块都已使用内部工具进行测试,以验证 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 的 Products 端点会返回 5XX
  • 135113408 - 如果工作器意外终止,则应重启
  • 134945852 - oauth 插件中未使用 tokenCacheSize
  • 134947757 - 在 OAuth 插件中设置 cacheTTL
  • 135445171 - OAuth 中的 gracePeriod 计算不正确
  • 使用 Edge Microgateway 安装时提供的记忆模块
  • 135367906 - 安全审核

版本 2.5.x

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

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

格式错误的 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,可让您以 Base64 编码的基本身份验证标头的形式传递客户端/密钥,并以表单参数的形式传递 grant_type。请参阅直接获取不记名令牌

(已在 2.5.31 中修复)私密配置不遵循令牌标志

修复了以下问题:将 Edge Microgateway 配置为在 Edge for Private Cloud 上使用 OAuth2 访问令牌时无法正常运行(系统不会遵循令牌)。

Docker:支持使用自签名证书

(添加于 2.5.29)如果您使用的证书授权机构 (CA) 默认不受 Node.js 信任,则可以在使用 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,则可以使用以下选项来控制 Microgateway 在防火墙后面运行时的代理行为:

  • HTTP_PROXY
  • HTTPS_PROXY
  • NO_PROXY

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

Docker:更新了插件说明

(新增于 2.5.27)如果您在 Docker 容器中运行 Edge Microgateway,现在可以通过以下两种方式部署插件。其中一个选项(使用 Docker 挂载点)是新选项。之前存在的另一个选项基本没有变化;不过,Dockerfile 已更新。如需了解详情,请参阅以下链接:

为 KVM 升级命令添加了 OAuth 令牌支持

(添加于 2.5.27)您可以将 OAuth 令牌与 upgradekvm 命令搭配使用。如需了解详情,请参阅升级 KVM

在 Edge Analytics 中对 API 进行分隔

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

配置本地代理

(添加时间:2.5.25)使用本地代理时,您无需在 Apigee Edge 上手动创建 Microgateway 感知代理。而是使用本地代理的基准路径。如需了解详情,请参阅使用本地代理模式

使用独立模式

(新增于 2.5.25)您可以运行与任何 Apigee Edge 依赖项完全断开连接的 Edge Microgateway。这种场景称为独立模式,可让您在不连接到互联网的情况下运行和测试 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 集群中部署的服务前面的 Sidecar 网关。请参阅:将 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, --actionstartstop。默认值为“start”。

示例:

如需开始使用 Forever,请执行以下操作:

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

如需停止 Forever,请执行以下操作:

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 可以从该端点下载其配置文件。请参阅 指定配置文件端点

支持“forever”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 中的 bug

  • (问题 236)修复了清除缓存中的拼写错误。
  • (问题 234)Edge Microgateway 2.5.35 会在重新加载时发生崩溃。
  • (问题 135)使用 -v 选项时,虚拟主机引用“secure”无效。此修复程序会在部署前修改 edgemicro-auth 代理,以确保虚拟主机与“-v”标志中指定的内容完全匹配。此外,您还可以为虚拟主机指定任意数量和任意名称(不再局限于“默认”和“安全”)。
  • (问题 141)edgemicro reload 命令不支持配置文件选项 -c。此问题已解决。
  • (问题 142)Edge Microgateway 会在安装时抱怨已废弃的加密功能。 此问题已解决。
  • (问题 145)配额不适用于 Edge Microgateway。此问题已解决。
  • (Apigee 社区问题: https://community.apigee.com/questions/33149/emg-jwt-token-validated-against-both-api-proxies-a.html#answer-33336) JWT 令牌在 OAUTH 中同时针对 API 代理和资源 URI 进行验证。此问题现已解决。
  • (Apigee 社区问题:https://community.apigee.com/questions/47846/microgateway-not-working-with-oauth.html) 微网关不支持 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 标头可以为 Google Analytics 设置 client_ip

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

8. OAuth 插件变更

OAuth 插件支持 API 密钥验证和 OAuth 访问令牌验证。在此次变更之前,该插件接受这两种安全形式。经过此更改,您只能允许其中一种安全模式(同时保持向后兼容性)。

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

  • allowOAuthOnly - 如果设置为 true,则每个 API 都必须包含包含 Bearer 访问令牌的 Authorization 标头。

  • 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 实例将处理哪些支持 Microgateway 的代理。 Edge Microgateway 启动后,会下载其所属组织中的所有 Microgateway 感知型代理。使用以下配置可限制微网关将处理哪些代理。例如,以下配置会将微网关将要处理的代理限制为三个:edgemicro_proxy-1edgemicro_proxy-2edgemicro_proxy-3

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

分析数据脱敏

借助一项新配置,您可以阻止请求路径信息显示在 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 秒(5 分钟)。

在插件中重写目标网址

您可以在插件中动态替换默认目标网址,只需在插件代码中修改以下变量即可: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、configure 和 start 命令中,您现在可以在命令行上指定自定义配置路径。例如:

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

v2.3.3 中修复的 bug

  • 修复了在处理大型请求/响应时发生的内存泄漏问题。
  • 修复了插件执行顺序。现在,其行为与文档中所述的行为一致。
  • 插件 accumulate-request 不再会在处理 GET 请求时挂起。
  • 修复了 accumulate-response 插件中缺少响应正文导致错误的问题。

版本 2.3.1

安装注意事项

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

npm install -g edgemicro

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

v.2.3.1 中的新功能和增强功能

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

过滤代理

借助新配置,您可以过滤 Edge Microgateway 在启动时要加载的代理。以前,微网关会加载从您在 edgemicro configure 命令中指定的 Edge 组织/环境中提取的所有微网关感知型代理(名为 edgemicro_* 的代理)。借助这项新功能,您可以过滤此代理列表,以便 Edge Microgateway 仅加载您指定的代理。只需将代理元素添加到微网关配置文件中,如下所示:

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

例如,假设您的 Edge org/env 中有 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 命令中移除。

此外,我们还添加了 3 个新的 CLI 命令。您必须从执行 edgemicro start 命令的同一目录中运行以下命令:

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

实现零停机的自动配置重新加载

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

edgemicro:
    config_change_poll_interval: [seconds]

向 CLI 添加了版本信息

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

edgemicro --version

新增了 Edge Microgateway 服务器 SSL 选项

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

选项 说明
pfx 包含客户端私钥、证书和 CA 证书(采用 PFX 格式)的 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 系统上兼容。

版本 2.1.0

版本 21.0 中的新功能和增强功能

以下是新增功能和增强功能:

指定客户端 SSL/TLS 选项

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

版本 2.0.11

安装说明 v2.0.11

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

npm install -g edgemicro

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

v.2.0.11 中的新功能和增强功能

以下是新增功能和增强功能:

在启动时指定端口

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

可选择保留身份验证标头

借助新配置设置 keepAuthHeader,您可以保留在请求中发送的授权标头。如果设置为 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 全局安装

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

版本 2.0.0

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

新增功能和改进(版本 2.0.0)

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

单进程服务器

Edge Microgateway 现在是单进程服务器。它不再使用双进程模型,其中一个进程(以前称为“代理”)会启动 Edge Microgateway(第二个进程)。新架构可简化自动化和容器化流程。

命名空间型配置文件

配置文件现在使用组织和环境进行命名空间分隔,因此多个 Microgateway 实例可以在同一主机上运行。运行 Edge Microgateway 配置命令后,您可以在 ~/.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 日发布。

新增功能和改进(版本 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

版本 1.1.2 中修复了以下 bug。

说明
适用于与本地 Edge 搭配使用的 edgemicro-internal 代理的 Java 调用现在使用正确的 MGMT 服务器。
从代理中移除 typescript 依赖项。
修复了使用精简部署选项时出现的 CLI bug。
修复了证书逻辑依赖项引用。