您正在查看 Apigee Edge 文档。
前往 Apigee X 文档。 信息
3.3.x 版
bug 修复和增强功能 v.3.3.x
3.3.11
2026 年 8 月 19 日 - Docker 容器映像更新(标记:3.3.11-sec.1)
2026 年 8 月 19 日,Apigee 发布了以下针对 Edge Microgateway 的修复和增强功能。
容器更新:
| 问题 ID | 类型 | 说明 |
|---|---|---|
| 541758106 | 增强选项 |
Edge Microgateway Docker 容器映像已使用升级后的基础映像 |
Docker 容器更新中修复的安全问题
- GHSA-5p4m-2wfm-xmqj
- CVE-2026-13595
- CVE-2026-27456
- CVE-2026-12590
- CVE-2026-53614
- CVE-2026-53612
- CVE-2025-14104
- CVE-2026-53615
- CVE-2026-53613
- CVE-2026-34743
2026 年 7 月 1 日 - 初始版本
2026 年 7 月 1 日,Apigee 发布了以下针对 Edge Microgateway 3.3.11 的修复。
组件版本
下表列出了与 Edge Microgateway 3.3.11 关联的各个组件项目的版本号。请注意,由于每个组件都是一个单独的项目,因此发布版本号可能与主产品版本不一致:
| 微网关 | 插件 | edgeauth |
|---|---|---|
| 3.3.11 | 3.3.9 | 3.2.2 |
修复的安全问题
- CVE-2026-7383
- CVE-2026-9076
- CVE-2026-34180
- CVE-2026-34181
- CVE-2026-34182
- CVE-2026-34183
- CVE-2026-42764
- CVE-2026-42766
- CVE-2026-42767
- CVE-2026-42769
- CVE-2026-45445
- CVE-2026-45446
- CVE-2026-45447
- CVE-2026-53550
3.3.10
2026 年 5 月 27 日,Apigee 发布了以下 Edge Microgateway 修复。
组件版本
下表列出了与 Edge Microgateway 3.3.10 关联的各个组件项目的版本号。请注意,由于每个组件都是一个单独的项目,因此发布版本号可能与主产品版本不一致:
| 微网关 | 插件 | edgeauth |
|---|---|---|
| 3.3.10 | 3.3.9 | 3.2.2 |
修复的安全问题
3.3.9
2026 年 4 月 1 日,Apigee 发布了以下针对 Edge Microgateway 的修复和增强功能。
bug 修复和增强功能:
| 问题 ID | 类型 | 说明 |
|---|---|---|
| 466417342 | bug |
提升了控制平面维护期间的恢复能力:修复了以下问题:在 Apigee ZooKeeper 维护窗口期间,Edge Microgateway 实例可能会遇到运行时中断(例如 404 错误或重启)。EMG 现在可以正确处理来自控制平面的 null 响应,确保它保留并提供来自本地缓存的最后一个已知良好配置,而不是错误地清除该配置。 |
组件版本:
下表列出了与 Edge Microgateway 3.3.9 关联的各个组件项目的版本号。请注意,由于每个组件都是一个单独的项目,因此发布版本号可能与主产品版本不一致:
| 微网关 | 插件 | edgeauth |
|---|---|---|
| 3.3.9 | 3.3.9 | 3.2.2 |
修复的安全问题
- CVE-2025-13465
- CVE-2026-24842
- CVE-2026-26996
- CVE-2026-2391
- CVE-2026-27904
- CVE-2026-27601
- CVE-2026-27903
- CVE-2026-26960
- CVE-2024-22365
- CVE-2026-24001
- CVE-2025-15284
- CVE-2025-64756
- CVE-2026-31802
- CVE-2026-29786
- CVE-2026-25547
3.3.8
2025 年 12 月 16 日,Apigee 发布了以下针对 Edge Microgateway 的修复和增强功能。
bug 修复和增强功能:
| 问题 ID | 类型 | 说明 |
|---|---|---|
| 430058436 | 功能 |
Edge Microgateway (EMG) 现在支持 Node.js 版本 24,与当前的 Node.js Active LTS 和 Maintenance LTS 版本保持一致。Node.js 版本 18 已不再受支持。 |
| 135435674 | 功能 |
为了提高可维护性并简化发布流程, |
| 461773945 | bug |
修复了以下问题:如果 Edge Microgateway 在从 Apigee 管理平台刷新配置时收到错误(例如 HTTP 500 或连接重置),则可能无法从其缓存中提供请求。Edge Microgateway 现在可以在出现此类暂时性控制层面问题时,更可靠地使用最后一个已知良好配置。 |
组件版本:
下表列出了与 Edge Microgateway 3.3.8 关联的各个组件项目的版本号。请注意,由于每个组件都是一个单独的项目,因此发布版本号可能与主产品版本不一致:
| 微网关 | 插件 | edgeauth |
|---|---|---|
| 3.3.8 | 3.3.8 | 3.2.2 |
修复了安全问题
3.3.7
2025 年 7 月 17 日,Apigee 发布了以下针对 Edge Microgateway 的修复和增强功能。
bug 修复和增强功能:
| 问题 ID | 类型 | 说明 |
|---|---|---|
| 191613108 | 功能 |
Edge Microgateway (EMG) 经过增强,可在 更新后的功能允许根据动态网址或匹配网址格式有条件地排除插件。此修改向后兼容,可确保现有的静态网址配置保持完全正常运行,而无需进行任何更改。 例如:
edgemicro:
plugins:
excludeUrls: '/hello,/proxy_one/*' # global exclude urls
sequence:
-oauth
-json2xml
-quota
-json2xml:
excludeUrls: '/hello/xml/*' # plugin level exclude urls
|
| 135276110 | 功能 |
Edge Microgateway (EMG) 分析数据包含 更新了 EMG,以自动为每个分析记录填充 |
| 422696257 | bug |
通过解决一个严重的崩溃问题,系统稳定性得到了显著提升。 此修复涉及识别并更正内部模块中的错误配置,该错误配置之前导致了重复的进程循环,进而导致系统过载。这种有针对性的修正消除了循环,从而使系统更加稳健可靠。 |
修复了安全问题
3.3.6
2025 年 4 月 16 日,Apigee 发布了以下针对 Edge Microgateway 的修复和增强功能。
组件版本:
下表列出了与 Edge Microgateway 3.3.6 关联的各个组件项目的版本号。请注意,由于每个组件都是一个单独的项目,因此发布版本号可能与主产品版本不一致:
| 微网关 | core | config | 插件 | edgeauth |
|---|---|---|---|---|
| 3.3.6 | 3.3.6 | 3.3.6 | 3.3.6 | 3.2.2 |
修复了安全问题
- CVE-2025-27789
- CVE-2024-21538
- CVE-2024-12133
3.3.5
2024 年 12 月 20 日,Apigee 发布了以下针对 Edge Microgateway 的修复和增强功能。
组件版本:
下表列出了与 Edge Microgateway 3.3.5 关联的各个组件项目的版本号。请注意,由于每个组件都是一个单独的项目,因此发布版本号可能与主产品版本不一致:
| 微网关 | 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
3.3.4
2024 年 9 月 18 日,Apigee 发布了以下针对 Edge Microgateway 的修复和增强功能。
组件版本:
下表列出了与 Edge Microgateway 3.3.4 关联的各个组件项目的版本号。请注意,由于每个组件都是一个单独的项目,因此版本号可能与主产品版本不一致:
| 微网关 | 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 日,Apigee 发布了以下针对 Edge Microgateway 的修复和增强功能。
组件版本:
下表列出了与 Edge Microgateway 3.3.3 关联的各个组件项目的版本号。请注意,由于每个组件都是一个单独的项目,因此版本号可能与主产品版本不一致:
| 微网关 | 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 中移除了对 |
修复的安全问题
- 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 日,Apigee 发布了以下针对 Edge Microgateway 的修复和增强功能。
组件版本:
下表列出了与 Edge Microgateway 3.3.2 关联的各个组件项目的版本号。请注意,由于每个组件都是一个单独的项目,因此版本号可能与主产品版本不一致:
| 微网关 | 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。现在,我们构建版本为 |
修复的安全问题
无。
3.3.1
2022 年 6 月 7 日,Apigee 发布了以下针对 Edge Microgateway 的修复和增强功能。
组件版本:
下表列出了与 Edge Microgateway 3.3.1 关联的各个组件项目的版本号。请注意,由于每个组件都是一个单独的项目,因此版本号可能与主产品版本不一致:
| 微网关 | 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 |
修复了以下问题:尝试为私有云配置时, |
| 233315475 | bug |
修复了以下问题: |
| 221432797 | 更改 |
基础 Edge Microgateway 映像的 Docker Node.js 版本已升级到 Node.js 14。 |
| 215748732 | 功能 |
向 revokekeys 命令添加了对 SAML 令牌身份验证的支持。
现在,您可以使用 如需了解详情,请参阅命令行参考。 |
| 218723889 | 文档更新 |
更新了文档,添加了指向存储在 GitHub 上的受支持 Edge Microgateway 插件的链接。请参阅 Edge Microgateway 随附的现有插件。 |
修复的安全问题
| 问题 ID | 说明 |
|---|---|
| CVE-2021-23413 | 此问题会影响 3.7.0 之前的 jszip 软件包。创建新 ZIP 文件并将文件名设置为对象原型值(例如 proto、toString 等)会导致返回具有修改的原型实例的对象。 |
3.3.0
2022 年 2 月 4 日,Apigee 发布了以下针对 Edge Microgateway 的修复和增强功能。
组件版本:
下表列出了与 Edge Microgateway 3.3.0 关联的各个组件项目的版本号。请注意,由于每个组件都是一个单独的项目,因此版本号可能与主产品版本不一致:
| 微网关 | 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 install apigeetool@0.15.1 此问题将在未来版本的 Edge Microgateway 中得到解决。 |
| 138622990 | 功能 |
配额插件的新标志 |
| 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 修复和增强功能 v.3.2.x
3.2.3
2021 年 9 月 17 日,Apigee 发布了以下针对 Edge Microgateway 的修复和增强功能。
组件版本:
下表列出了与 Edge Microgateway 3.2.3 关联的各个组件项目的版本号。请注意,由于每个组件都是一个单独的项目,因此版本号可能与主产品版本不一致:
| 微网关 | core | config | 插件 | edgeauth |
|---|---|---|---|---|
| 3.2.3 | 3.2.3 | 3.2.3 | 3.2.3 | 3.2.2 |
bug 修复和增强功能:
| 问题 ID | 类型 | 说明 |
|---|---|---|
| 192416584 | 功能 |
借助 |
| 192799989 | 功能 |
借助 |
| 148062415 | bug | 修复了以下问题:在 Docker 容器上下文中,Edge Microgateway 无法通过 docker stop {containerId} 命令正常关闭。相应进程已终止,但 .sock 和 .pid 文件未移除。现在,文件已移除,重新启动同一容器可按预期运行。
|
| 190715670 | bug | 修复了微网关内部重新加载活动期间某些请求卡住的问题。此问题是间歇性的,在高流量情况下会发生。
当使用 OAuth 插件的 tokenCache 和 cacheKey 功能时,会出现此问题。
|
| 183910111 | bug | 修复了以下问题:带有尾部斜杠的资源路径网址被错误地解读为单独的资源路径。现在,例如,路径 /country/all 和 /country/all/ 会被解读为同一路径。 |
修复的安全问题
| 问题 ID | 说明 |
|---|---|
| CVE-2020-28503 | 2.0.5 之前的软件包 copy-props 通过主要功能容易受到原型污染的攻击。 |
| CVE-2021-23343 | 所有版本的 package path-parse 都容易受到正则表达式拒绝服务 (ReDoS) 攻击,攻击途径是通过 splitDeviceRe、splitTailRe 和 splitPathRe 正则表达式。 ReDoS 表现出多项式最坏情况时间复杂度。 |
3.2.2
2021 年 7 月 15 日,Apigee 发布了以下针对 Edge Microgateway 的修复和增强功能。
组件版本:
下表列出了与 Edge Microgateway 3.2.2 关联的各个组件项目的版本号。请注意,由于每个组件都是一个单独的项目,因此版本号可能与主产品版本不一致:
| 微网关 | core | config | 插件 | edgeauth |
|---|---|---|---|---|
| 3.2.2 | 3.2.2 | 3.2.2 | 3.2.2 | 3.2.2 |
bug 修复和增强功能:
| 问题 ID | 类型 | 说明 |
|---|---|---|
| 185323500 | 更改 |
令牌请求和刷新令牌请求 API 现在会以秒为单位返回
为了符合
RFC 6749 OAuth 2.0 授权框架, |
| 188492065 | 更改 |
Node.js 8 支持终止
自版本 3.2.2 起,我们将不再支持 Node.js 8。如需了解详情,请参阅支持的软件和版本:Edge Microgateway。 |
| 183990345 | 功能 |
为 Docker 容器配置日志输出
借助 Edge Microgateway 配置参数 to_console,您可以选择将日志信息发送到标准输出,而不是发送到日志文件。如果您按照相关步骤在 Docker 容器中运行 Edge Microgateway,该容器默认会将标准输出和错误输出重定向到容器中位于
如需防止日志信息发送到 如需详细了解如何使用此新变量,请参阅将 Docker 用于 Edge Microgateway。 |
| 183057665 | 功能 |
使 edgemicro.pid 和 edgemicro.sock 文件路径可配置。
用于运行 Edge Microgateway 的 Docker 容器的新 |
| 191352643 | 功能 | Edge Microgateway 的 Docker 映像已更新为使用 NodeJS 版本 12.22。 请参阅将 Docker 用于 Edge Microgateway。 |
修复的安全问题
| 问题 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.3.2 及之前版本中的软件包下划线容易受到通过模板函数进行的任意代码注入攻击,尤其是在将变量属性作为实参传递时,因为该实参未经过清理。 |
| 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 日,Apigee 发布了以下针对 Edge Microgateway 的修复和增强功能。
组件版本:
下表列出了与 Edge Microgateway 3.2.1 关联的各个组件项目的版本号。请注意,由于每个组件都是一个单独的项目,因此版本号可能与主产品版本不一致:
| 微网关 | 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 条件,以避免在 注意:此修复需要您升级 edgemicro-auth 代理。 |
| 179971737 | bug |
修复了以下问题:对于 edgemicro_* 代理,目标 4XX / 5XX 状态响应被记录为代理错误。
对于 Edge Microgateway 交易,Apigee Edge 错误代码分析信息中心中显示了错误的目标错误计数。目标错误的错误代码被计为代理错误。此问题已修复,现在会显示正确的目标错误计数。 |
| 179674670 | 功能 |
新增了一项功能,可让您根据产品状态代码过滤 JWT 中放置的 API 产品列表。
API 产品有三种状态代码 - Pending、Approved 和 Revoked。
在 edgemicro-auth 代理的设置 JWT 变量 政策中添加了一个名为
|
| 178423436 | bug |
通过 CLI 或环境变量传递的密钥和密钥值在进程资源管理器命令行实参中可见。
我们收到报告称,从命令行实参传递或通过环境变量设置的 Edge Microgateway 密钥和密钥值在启动微网关后显示在节点工作进程/子进程的实参中。 为了解决环境变量场景中的此问题,值不再显示在进程资源管理器命令行实参中。 如果在启动微网关时通过命令行传递密钥和 Secret 值,则这些设置会取代任何环境变量值(如果已设置)。在这种情况下,这些值仍会显示在进程资源管理器命令行实参中。 |
| 178341593 | bug |
修复了 apikeys 插件的文档错误。
apikeys 插件的 README 文件错误地包含
|
| 179366445 | bug |
修复了以下问题:针对目标的所有 GET 请求的载荷都被丢弃。
您可以使用新的配置参数 例如: edgemicro: enable_GET_req_body: true 根据 RFC 7231 第 4.3.1 节:GET,GET 请求载荷没有明确的语义,因此可以发送到目标。 |
3.2.0
2021 年 1 月 21 日,Apigee 发布了以下针对 Edge Microgateway 的修复和增强功能。
组件版本:
下表列出了与 Edge Microgateway 3.2.0 关联的各个组件项目的版本号。请注意,由于每个组件都是一个单独的项目,因此版本号可能与主产品版本不一致:
| 微网关 | 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 端点使用正确的时间单位。
修复了以下问题:
此修复不会更改过期时间的长度,只会更改时间单位。它仅适用于访问令牌响应载荷中的 如果客户端一直依赖以毫秒为单位的 如果客户端始终使用 JWT 令牌中的值来评估令牌刷新周期,则客户端无需更改。 |
| 173064680 | bug | 修复了以下问题:微网关在处理完所有数据块之前结束了目标请求。
这是一个间歇性问题,在高载荷大小的请求中观察到,该问题是在 3.1.7 版本中引入的。 |
| 174640712 | bug | 向插件添加了适当的数据处理。
已向以下插件添加适当的数据处理功能: |
版本 3.1.x
bug 修复和增强功能 v.3.1.x
3.1.8
2020 年 11 月 16 日,Apigee 发布了以下针对 Edge Microgateway 的修复和增强功能。
组件版本:
下表列出了与 Edge Microgateway 3.1.8 关联的各个组件项目的版本号。请注意,由于每个组件都是一个单独的项目,因此版本号可能与主产品版本不一致:
| 微网关 | core | config | 插件 | edgeauth |
|---|---|---|---|---|
| 3.1.8 | 3.1.9 | 3.1.7 | 3.1.3 | 3.1.2 |
bug 修复和增强功能:
| 问题 ID | 类型 | 说明 |
|---|---|---|
| 169201295 | bug | 环境变量标记中的数值和布尔值被错误解析。
环境变量替换处理将所有值解析为字符串,导致布尔值或数值出现解析错误。例如, |
| 169202749 | bug | 在某些情况下,环境变量替换功能无法正常运行。
环境变量替换处理功能无法用于某些配置属性。如需了解相关限制,请参阅使用环境变量值设置配置属性。 |
| 168732942 | bug | 修复了 OAuth 范围未按预期限制 API 代理访问权限的问题。
edgemicro-auth 代理中的 |
| 170609716 | bug | 修复了 edgemicro-auth 代理中的 /refresh 流生成不含 apiProductList 的 JWT 的问题。
|
| 170708611 | bug | 自定义插件无法使用 API 产品范围。
API 产品范围未提供给自定义插件,也未写入缓存配置文件。如需了解如何向插件提供范围详细信息,请参阅 关于插件 init() 函数。 |
| 169810710 | 功能 | 密钥和密文已保存在缓存配置文件中。
每次重新加载/启动时,Edge Microgateway 密钥和 Secret 都会保存到缓存配置 yaml 文件中。在 3.1.8 中,密钥和 Secret 不再保存在缓存配置文件中。如果密钥和 Secret 之前已写入缓存配置文件,则会被移除。 |
| 170708621 | 功能 | 无法停用分析插件。
在之前的微网关版本中,分析插件默认处于启用状态,并且无法停用。在版本 3.1.8 中,引入了一个新的配置参数 |
| 159571119 | bug | 在自定义插件的 onerror_request 钩子中获取响应/套接字超时方面的 null 错误。
修复了以下问题:为 |
3.1.7
2020 年 9 月 24 日,Apigee 发布了以下针对 Edge Microgateway 的修复和增强功能。
组件版本:
下表列出了与 Edge Microgateway 3.1.7 关联的各个组件项目的版本号。请注意,由于每个组件都是一个单独的项目,因此版本号可能与主产品版本不一致:
| 微网关 | 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 | 开发者应用信息未在 Analytics 中填充,原因是未经授权的产品资源路径导致了 403 状态响应,或者令牌过期或无效导致了 401 响应。
|
| 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 | jwk_public_keys 数据未由同步器存储和提取,而是存储在 Redis 中。
|
| 141659881 | bug | 对无效目标证书的错误处理显示了误导性错误响应。
|
| 142808699 | bug | accesscontrol 插件未正确处理“allow”和“deny”部分。
微网关现在可以正确处理“deny”部分,并遵循“allow”和“deny”部分的顺序。在微网关配置文件中添加了新的 |
3.1.6
2020 年 8 月 20 日,Apigee 发布了以下针对 Edge Microgateway 的修复和增强功能。
组件版本:
下表列出了与 Edge Microgateway 3.1.6 关联的各个组件项目的版本号。请注意,由于每个组件都是一个单独的项目,因此版本号可能与主产品版本不一致:
| 微网关 | 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 中修复):
假设某个代理配置了基本路径:
|
||||||||||||
| 160431789 | bug | 自定义插件 - 传递给 init 的配置对象未填充
在与 Edge Microgateway 配置文件合并后,Apigee Edge 配置可在所有自定义插件的配置对象中使用。请参阅 config。 |
||||||||||||
| 162758808 | bug | Redis 后端存储的新配额配置
您可以使用以下配置为配额指定 Redis 后端存储区。 如需了解详情,请参阅使用 Redis 后端存储区来存储配额。 |
3.1.5
2020 年 6 月 26 日,Apigee 发布了以下针对 Edge Microgateway 的修复和增强功能。
组件版本:
下表列出了与 Edge Microgateway 3.1.5 关联的各个组件项目的版本号。请注意,由于每个组件都是一个单独的项目,因此版本号可能与主产品版本不一致:
| 微网关 | 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 Private Cloud)未提取支持微网关的产品 修复了以下问题:无法拉取支持微网关的产品。此问题仅存在于 Edge for Private Cloud 安装中。 |
| 154956890、155008028、155829434 | 功能 | 支持按自定义属性过滤下载的产品
如需了解详情,请参阅按自定义属性过滤商品 |
| 153949764 | bug | 修复了以下问题:当日志目标文件已满时,Edge Microgateway 进程会崩溃
改进了异常处理,以捕获错误并向控制台输出消息。 |
| 155499600 | bug | 修复了密钥轮替和 KVM 升级方面的问题
另请参阅轮替 JWT 密钥。 |
3.1.4
2020 年 4 月 23 日,Apigee 发布了以下针对 Edge Microgateway 的修复。
bug 修复:
修复了 3.1.3 版中的依赖项问题。版本 3.1.3 已在 npm 代码库中标记为已弃用。否则,版本 3.1.3 发行说明中描述的所有 bug 修复和增强功能都适用于此版本。
3.1.3
2020 年 4 月 15 日,Apigee 发布了以下针对 Edge Microgateway 的修复和增强功能。
组件版本:
下表列出了与 Edge Microgateway 3.1.3 关联的各个组件项目的版本号。请注意,由于每个组件都是一个单独的项目,因此版本号可能与主产品版本不一致:
| 微网关 | 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 日,Apigee 发布了以下针对 Edge Microgateway 的修复和增强功能。
组件版本:
下表列出了与 Edge Microgateway 3.1.3 关联的各个组件项目的版本号。请注意,由于每个组件都是一个单独的项目,因此版本号可能与主产品版本不一致:
| 微网关 | 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: true或quotaUri: 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
2020 年 2 月 20 日,Apigee 发布了以下针对 Edge Microgateway 的修复和增强功能。
组件版本:
下表列出了与 Edge Microgateway 3.1.1 关联的各个组件项目的版本号。请注意,由于每个组件都是一个单独的项目,因此版本号可能与主产品版本不一致:
| 微网关 | core | config | 插件 | edgeauth |
|---|---|---|---|---|
| 3.1.1 | 3.1.1 | 3.1.1 | 3.0.13 | 3.0.9 |
bug 修复和增强功能:
-
146069701 - 修复了
microgateway-core模块不遵循HTTP_PROXY和HTTPS_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
2020 年 1 月 21 日,Apigee 发布了以下针对 Edge Microgateway 的修复和增强功能。
组件版本:
下表列出了与 Edge Microgateway 3.1.0 关联的各个组件项目的版本号。请注意,由于每个组件都是一个单独的项目,因此版本号可能与主产品版本不一致:
| 微网关 | 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 -
sourceRequest、targetRequest和targetResponse的日志级别已更改为 INFO 级别。 - 146019878 - 修复了 Edge 分析中的“API 代理性能”计算延迟时间与 Edge Microgateway sourceResponse/targetResponse 日志事件之间的差异。现在,Edge 分析和微网关日志事件的延迟时间已保持一致。
- 与模式匹配逻辑相关的更改:
- 147027862 - 更新了 OAuth 插件,以支持 API 产品中指定的以下资源路径匹配模式:
/{literal}**/{literal}*- 上述两种模式的任意组合
在此更改之后,Edge Microgateway 插件现在遵循与 Apigee Edge 相同的模式匹配,如配置资源路径“/”“/*”和“/**”的行为中所述。
- 145644205 - 更新了 apiKeys 插件的模式匹配逻辑,使其与 oauth 插件相匹配。
- 147027862 - 更新了 OAuth 插件,以支持 API 产品中指定的以下资源路径匹配模式:
- 143488312 - 修复了以下问题:客户端 ID 参数中的前导或尾随空格导致 OAuth 令牌和 API 密钥请求的 JWT 产品列表为空。
- 145640807 和 147579179 - 新增了一项功能,允许名为“同步器”的特殊 Edge Microgateway 实例从 Apigee Edge 检索配置数据,并将其写入本地 Redis 数据库。然后,您可以配置其他微网关实例,以从数据库中读取其配置数据。此功能可为 Edge Microgateway 增加一层弹性。
这样,微网关实例就可以在无需与 Apigee Edge 通信的情况下启动并正常运行。如需了解详情,请参阅使用同步器。
同步器功能目前支持与 Redis 5.0.x 搭配使用。
版本 3.0.x
bug 修复和增强功能 v.3.0.x
3.0.10
2019 年 11 月 8 日,Apigee 发布了以下针对 Edge Microgateway 的修复和增强功能。
组件版本:
下表列出了与 Edge Microgateway 3.0.10 关联的各个组件项目的版本号。请注意,由于每个组件都是一个单独的项目,因此版本号可能与主产品版本不一致:
| 微网关 | 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 产品。然后,您必须将该商品添加到代理的开发者应用中,如以下屏幕截图所示:
注意:如 配置“/”“/*”和“/**”资源路径的行为中所述,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代理生成的令牌的默认到期时间已从 108,000 毫秒(1.8 分钟)更改为 1,800 秒(30 分钟)。 - 143551282 - 为了支持启用 SAML 的组织,
edgemicro genkeys命令已更新为包含‑‑token参数。此参数可让您使用 OAuth 令牌进行身份验证,而不是使用用户名/密码。 如需了解详情,请参阅 生成密钥。
3.0.9
2019 年 10 月 11 日,Apigee 发布了以下针对 Edge Microgateway 的修复和增强功能。
组件版本:
下表列出了与 Edge Microgateway 3.0.9 关联的各个组件项目的版本号。请注意,由于每个组件都是一个单独的项目,因此版本号可能与主产品版本不一致:
| 微网关 | 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代理进行了配置更改,以防止配额超支。此变更旨在将配额类型设置为 calendar。 如需使用此改进,您必须将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
2019 年 9 月 26 日,Apigee 发布了以下针对 Edge Microgateway 的修复和增强功能。
组件版本:
下表列出了与 Edge Microgateway 3.0.8 关联的各个组件项目的版本号。请注意,由于每个组件都是一个单独的项目,因此版本号可能与主产品版本不一致:
| 微网关 | core | config | 插件 | edgeauth |
|---|---|---|---|---|
| 3.0.8 | 3.0.6 | 3.0.6 | 3.0.9 | 3.0.6 |
bug 修复和增强功能:
- 140025210 - 添加了新的“故障开放”功能。如果由于连接错误而无法刷新过期的 JWT 令牌,导致无法成功调用
edgemicro-auth代理来验证 API 密钥,此功能可让 API 处理继续进行。借助此功能,您可以设置宽限期,在此期间旧令牌会保留在缓存中并重复使用,直到宽限期结束。此功能可让 Edge Microgateway 在连接暂时中断的情况下继续处理请求。当连接恢复并且成功的 Verify API Key 调用通过时,系统会获取新的 JWT 并替换缓存中的旧 JWT。
如需配置新的“应急开启”功能,请执行以下操作:
- 在 Edge Microgateway 配置文件的
oauthstanza 中设置以下属性:oauth: failOpen: true failopenGraceInterval: time_in_seconds cacheKey: true ...
例如:
oauth: failOpen: true failopenGraceInterval: 5 cacheKey: true ...
在此示例中,如果由于连接问题而无法刷新旧令牌,则旧令牌将使用 5 秒。 5 秒后,系统会返回身份验证错误。
- 在 Edge Microgateway 配置文件的
- 141168968 - 更新了插件,以在所有插件日志输出中包含
correlation_id。 此外,还根据需要将某些日志的日志级别更改为error。 - 140193349 - 对
edgemicro-auth代理进行了更新,要求在每个“验证 API 密钥”请求中验证 Edge Microgateway 密钥和密钥。Edge Microgateway 已更新为始终在每个“验证 API 密钥”请求中发送密钥和密文。此更改可防止客户端仅使用 API 密钥获取 JWT。 - 140090250 - 进行了一项更新,以添加配额处理的诊断日志记录。通过此更改,现在可以将配额日志输出与 Edge Microgateway 的其余日志相关联。
3.0.7
2019 年 9 月 12 日,Apigee 发布了以下针对 Edge Microgateway 的修复和增强功能。
组件版本:
下表列出了与 Edge Microgateway 3.0.7 关联的各个组件项目的版本号。请注意,由于每个组件都是一个单独的项目,因此版本号可能与主产品版本不一致:
| 微网关 | 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 中被错误地记录为 100。正确的房源名称是:
edgemicro: keep_alive_timeout - 139526406 - 修复了以下 bug:如果开发者应用包含多个商品,则会出现错误的配额计数。现在,对于包含多个产品的应用,系统会针对每个产品正确强制执行配额。“appName + productName”的组合用作配额标识符。
3.0.6
2019 年 8 月 29 日,Apigee 发布了以下针对 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
2019 年 8 月 15 日,Apigee 发布了以下针对 Edge Microgateway 的修复和增强功能。
修复的 bug- 139005279 - 修复了
edgemicro status命令未返回正确数量的工作进程的问题。 - 138437710 - 修复了 ExitCounter 类中阻止写入正确日志的问题。
- 139064652 - 添加了为事件和系统日志添加
trace和debug日志记录级别的功能。目前,仅添加了添加这些日志级别的功能。目前,可用的日志级别包括info、warn和error。 - 139064616 - 已针对所有控制台日志语句标准化日志输出。控制台日志记录语句现在包含以下属性:
- 时间戳
- 组件名称
- 进程 ID
- 控制台日志消息
- 138413755 - 改进了以下 CLI 命令的 JWT 密钥和密钥相关日志消息:cert、verify、upgradekvm、token、genkeys、revokekeys、rotatekey 和 configure。
- 138413577 - 为后端服务超时添加并改进了错误处理。
- 138413303 - 为响应和套接字超时添加并改进了错误处理。
- 138414116 - 针对“连接被拒绝”错误添加并改进了错误处理。
3.0.4
2019 年 8 月 1 日,Apigee 发布了以下针对 Edge Microgateway 的修复和增强功能。
- 134445926 - 改进了内部 Edge Microgateway 身份验证。
- 137582169 - 解决了启动了不需要的进程的问题。额外的进程导致插件重新加载,并使用了过多的内存。 Edge Microgateway 现在可将进程数保持在预期限值内。
- 137768774 - 改进了日志消息:
- 清理了交易(请求)日志。
- 根据需要添加了更多日志消息。
- 将事务(请求)日志消息从控制台输出移到了相关日志文件中。
- 更新了控制台日志,以使用集中式日志记录功能。
- 138321133、138320563 - 对配额缓冲区进行了基础内部更改,以实现未来的配额增强功能。
3.0.3
2019 年 7 月 23 日,Apigee 发布了以下针对 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 日,Apigee 发布了以下针对 Edge Microgateway 的修复和增强功能。
代码质量 - 代码已通过质量审核,并且已进行代码更改以满足用户要求的质量标准。我们解决了源自 JSHint 的代码质量错误和警告。
因此,我们发现并修复了一些实际的代码错误。所有 Apigee Edge Microgateway 模块都经过了此流程。请参阅 6 月 28 日和 7 月 2 日的提交记录,了解 microgateway-config、microgateway-core、microgateway-plugins 和 microgateway。
所有具有代码质量变更的模块都已通过内部工具进行测试,以验证 Edge Microgateway 在客户使用情形下的执行情况。
3.0.1
2019 年 6 月 21 日,Apigee 发布了以下针对 Edge Microgateway 的修复和增强功能。
- 134834551 - 更改了 Edge Microgateway 支持的 Node.js 版本
(Node.js 支持的版本:8 和 12;版本 7、9 和 11 为实验性版本) - 134751883 - Edge Microgateway 在负载下重新加载时崩溃
- 134518428 - 如果过滤模式不正确,Edge Microgateway 的产品端点会返回 5XX
- 135113408 - 如果工作器意外终止,应重新启动
- 134945852 - tokenCacheSize 未在 OAuth 插件中使用
- 134947757 - 在 OAuth 插件中设置 cacheTTL
- 135445171 - OAuth 中的 gracePeriod 计算不正确
- 使用 Edge Microgateway 安装随附的 memored 模块
- 135367906 - 安全审核
版本 2.5.x
新功能和增强功能 v.2.5.x
(已在 2.5.38 中修复,2019 年 7 月 6 日)
使用令牌缓存时,格式不正确的 JWT 可能会导致工作器崩溃。已在 Edge 微网关插件模块中修复。(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 build。
(添加于 2.5.31)新的 edgemicro-auth/token API
添加了新的 edgemicro-auth/token API,允许您将客户端/密钥作为 Base64 编码的基本授权标头传递,并将 grant_type 作为表单参数传递。请参阅直接获取不记名令牌。
(已在 2.5.31 中修复)私密配置不遵循令牌标志
修复了以下问题:在 Edge for Private Cloud 上配置 Edge Microgateway 以使用 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 现在支持 TLS,可用于传入 Edge Microgateway 服务器的请求(北向请求)以及从 Edge Microgateway 发送到目标应用的请求(南向请求)。
以下示例详细说明了如何设置这些 TLS 配置:
在这些示例中,您将看到如何使用容器装载点 /opt/apigee/.edgemicro 加载证书,然后在 Edge Microgateway 配置文件中引用这些证书。
Docker:支持请求代理
(添加于 2.5.27)如果您在 Docker 容器中运行 Edge Microgateway,则可以使用以下选项来控制微网关在防火墙后运行时代理的行为:
HTTP_PROXYHTTPS_PROXYNO_PROXY
如需了解详情,请参阅以 Docker 容器形式运行 Edge Micro。
Docker:更新了插件说明
(添加于 2.5.27)如果您在 Docker 容器中运行 Edge Microgateway,现在有两种部署插件的方式。其中一种方法是使用 Docker 装载点,这是新方法。另一个选项之前就存在,基本上没有变化;不过,Dockerfile 已更新。如需了解详情,请参阅以下链接:
- 方法 A:将插件目录装载到卷上(新)
- 选项 B:将插件构建到容器中(已更新)
针对 KVM 升级命令新增了 OAuth 令牌支持
(已在 2.5.27 中添加)您可以使用 upgradekvm 命令搭配 OAuth 令牌。如需了解详情,请参阅升级 KVM。
在 Edge Analytics 中分离 API
(添加于 2.5.26)新的分析插件标志可让您隔离特定 API 路径,使其在 Edge Analytics 信息中心内显示为单独的代理。例如,您可以隔离健康检查 API,以避免将其与实际 API 调用混淆。如需了解详情,请参阅从分析中排除路径。
配置本地代理
(添加于 2025 年 2 月 5 日)使用本地代理时,您无需在 Apigee Edge 上手动创建可识别微网关的代理。微网关将改为使用本地代理的基本路径。如需了解详情,请参阅使用本地代理模式。
使用独立模式
(添加于 2025 年 2 月 5 日)您可以完全断开 Edge Microgateway 与任何 Apigee Edge 依赖项的连接。在这种称为独立模式的方案中,您可以在没有互联网连接的情况下运行和测试 Edge Microgateway,请参阅以独立模式运行 Edge Microgateway。
撤消密钥
(添加于 2019 年 2 月 5 日)新增了一个 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 支持
(添加于 2019 年 5 月 2 日)您可以将 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, --action | start 或 stop。默认值为“start”。 |
示例:
如需启动 Forever,请执行以下操作:
edgemicro forever -f ~/mydir/forever.json -a start
如需停止 Forever,请执行以下操作:
edgemicro forever -a stop
JWT 密钥轮替
我们新增了一项功能,可让您轮替用于生成 JWT 令牌的公钥/私钥对,以在 Edge Microgateway 上实现 OAuth 安全性。请参阅 轮替 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
向 reload 命令添加了 configUrl 选项
(添加于 2.5.8)您现在可以将 --configUrl 或 -u 选项与 edgemicro reload 命令搭配使用。
JWT 时间差异的宽限期
(添加于 2.5.7 版)OAuth 配置中的 gracePeriod 属性有助于防止因系统时钟与 JWT 授权令牌中指定的 Not Before (nbf) 或 Issued At (iat) 时间略有出入而导致的错误。将此属性设置为允许此类差异的秒数。请参阅 OAuth 属性。
(添加于 2.5.7 版)OAuth 配置中的 gracePeriod 属性有助于防止因系统时钟与 JWT 授权令牌中指定的 Not Before (nbf) 或 Issued At (iat) 时间略有出入而导致的错误。将此属性设置为允许此类差异的秒数。请参阅 OAuth 属性。
已修复的 bug - v2.5.x
- (问题 #236)修复了清除缓存时的拼写错误。
- (问题 #234)Edge Microgateway 2.5.35 的重新加载崩溃。
- (问题 #135)使用 -v 选项时出现无效的虚拟主机引用“secure”错误。此修复程序在部署之前修改了 edgemicro-auth 代理,以确保虚拟主机与“-v”标志中指定的完全一致。此外,您还可以指定任意数量和任意名称的虚拟主机(不再仅限于默认和安全)。
- (问题 #141)edgemicro reload 命令不支持配置文件选项 -c。此问题已解决。
- (问题 #142) Edge Microgateway 在安装时会抱怨已弃用的加密。 此问题已解决。
- (问题 #145)配额无法与 Edge Microgateway 搭配使用。此问题已解决。
- (Apigee 社区问题: EMG - JWT 令牌在 OAUTH 中针对 API 代理和资源 URI 进行验证)JWT 令牌在 OAUTH 中针对 API 代理和资源 URI 进行验证。此问题已得到修复。
- (Apigee 社区问题:即使标头中没有 OAuth 令牌,微网关也能正常运行) 微网关无法与 OAuth 搭配使用。此问题已解决。
- 修复了 Windows 上的 pidPath。
- (问题 #157)修复了导致以下错误消息的问题:
未定义
ReferenceError: deployProxyWithPassword。 - (问题 #169)更新 Node.js 依赖项 (npm audit)
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/members 和 https://[host]/team/green/members,而无需创建新的 API 代理来支持新团队。请注意,不支持 /**/。
重要提示:Apigee 不支持使用通配符“*”作为基本路径的第一个元素。例如,不支持以下格式:/*/search。3. 为私有云配置向 CLI 添加了自定义配置路径 (PR 99)
默认情况下,微网关配置文件位于 ./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:
第一种方法是在微网关配置文件中将 edgemicro: proxy_tunnel 选项设置为 true:
edge_config: proxy: http://10.224.16.85:3128 proxy_tunnel: true
如果 proxy_tunnel 为 true,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_PROXY、HTTPS_PROXY 和 NO_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 安全存储区(一个加密的保险柜)中。现在,代理会将密钥存储在 Edge 的加密键值对映射 (KVM) 中。
10. 在插件中重写默认目标网址 (PR 74)
您还可以替换目标端点端口,并在 HTTP 和 HTTPS 之间进行选择。在插件代码中修改以下变量:req.targetPort 和 req.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>
已修复的 bug - v2.4.3
- 修复了需要付费组织才能正常运行 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 启动时,它会下载与其关联的组织中的所有支持微网关的代理。使用以下配置来限制微网关将处理哪些代理。例如,以下配置会将微网关将处理的代理数量限制为 3 个:edgemicro_proxy-1、edgemicro_proxy-2 和 edgemicro_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.targetHostname 和 req.targetPath。
新的插件函数签名
添加了新的插件函数签名,该签名将目标响应作为实参提供。此添加项使插件能够更轻松地访问目标响应。
function(sourceRequest, sourceResponse, targetResponse, data, cb)
简化了默认日志记录输出
默认情况下,日志记录服务现在会省略已下载的代理、商品和 JWT 的 JSON。
您可以在启动 Edge Microgateway 时设置 DEBUG=*,将默认输出更改为这些对象。例如:
DEBUG=* edgemicro start -o docs -e test -k abc123 -s xyz456
向 CLI 添加了自定义配置路径
默认情况下,微网关配置文件位于 ./config/config.yaml 中。在 init、configure 和 start 命令中,您现在可以在命令行中指定自定义配置路径。例如:
edgemicro start -o docs -e test -k abc123 -s xyz456 -c /home/microgateway/config
已修复的 bug v2.3.3
- 修复了在处理大型请求/响应时发生的内存泄漏问题。
- 修复了插件执行顺序。现在,它的行为方式与文档中所述的一致。
- 对于 GET 请求,插件 accumulate-request 不再挂起。
- 修复了 accumulate-response 插件中因缺少响应正文而导致错误的问题。
版本 2.3.1
安装备注
在某些旧版 Edge Microgateway 中,您可以通过下载 ZIP 文件来安装软件。这些 ZIP 文件已不再受支持。如需安装 Edge Microgateway,您必须使用:
npm install -g edgemicro
如需了解详情,请参阅安装主题。
新功能和增强功能 v.2.3.1
以下是此版本的新功能和增强功能。
过滤代理
借助新配置,您可以过滤 Edge Microgateway 在启动时将加载哪些代理。之前,微网关会加载从您在 edgemicro 配置命令中指定的 Edge 组织/环境拉取的所有支持微网关的代理(名称为 edgemicro_* 的代理)。借助这项新功能,您可以过滤此代理列表,以便 Edge Microgateway 仅加载您指定的代理。只需将 proxies 元素添加到微网关配置文件中,如下所示:
edge micro: proxies: - edgemicro_[name] - edgemicro_[name] ...
例如,假设您的 Edge 组织/环境中有 50 个 edgemicro_* 代理,其中包括名为 edgemicro_foo 和 edgemicro_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 始终以集群模式启动,并且已从 edgemicro start 命令中移除 --cluster 选项。
此外,还添加了 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 选项
除了 key 和 cert 之外,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_urledgeconfig:products
如需了解详情,请参阅 使用自定义身份验证服务。
版本 2.1.1
以下是此版本的新功能和增强功能。
部署跨平台兼容的身份验证代理
我们进行了一项增强,使用于将 Edge Microgateway 授权代理部署到 Edge 的命令在 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 环境变量指定端口号。如需了解详情,请参阅启动命令。
可选择保留身份验证标头
借助新的配置设置 keepAuthHeader,您可以保留请求中发送的 Authorization 标头。如果设置为 true,则会将授权标头传递给目标。请参阅 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 日发布。
新功能和增强功能 v.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 文档。
已修复的 bug v2.0.0
插件事件生命周期现在可以正确处理包含具有新回调的代码的异步代码。
版本 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 日志指定轮换间隔。
已修复 Bug v1.1.2
v. 1.1.2 中修复了以下 bug。
| 说明 |
|---|
| 用于本地 Edge 的 edgemicro-internal 代理的 Java callout 现在使用正确的 MGMT 服务器。 |
| 从代理中移除了 TypeScript 依赖项。 |
| 修复了使用精简部署选项时出现的 CLI bug。 |
| 修复了证书逻辑依赖项引用。 |