您正在查看 Apigee Edge 文档。
转到
Apigee X 文档。 info
2016 年 10 月 13 日(星期四),我们开始发布新版 Apigee Edge for Public Cloud。
新功能和更新
以下是此版本中的新功能和更新:
共享 流和流钩子,用于实现 API 代理的运营(仅限按请求提供的 Beta 版)
借助新的“共享流”功能,您可以实现 API 代理中的功能运营。通过 将条件化政策和资源组合到共享流中,您可以从 任何 API 代理引用该共享流,以执行单源可重用逻辑。例如,共享流可能会验证 API 密钥、防止突发流量限制并记录数据。
您可以在管理界面中定义共享流(API > 共享流),然后 通过以下两种不同的方式引用它们:
- 在 API 代理中使用新的 FlowCallout 政策
-
在名为“流钩子”的新工件上,这些工件位于以下位置:
- 请求:ProxyEndpoint PreFlow 之前,TargetEndpoint PostFlow 之后
- 响应:TargetEndpoint PreFlow 之前,ProxyEndpoint PostFlow 之后
借助这些连接点,您可以在各个代理的主要流 点之前或之后执行运营逻辑。您可以在 管理界面中将共享流分配给这些流钩子位置(API > 环境配置 > 流钩子)。
加密的键值映射
您可以创建加密的键值映射 (KVM),用于存储敏感信息,例如 凭据或 PII/HIPAA 数据。此功能不同于现有的 Edge 安全存储区 (vault),旨在取代它,因为 vault 值只能通过 Node.js(除了管理 API 之外)访问。您可以使用 Node.js 或键 值映射操作政策访问加密的 KVM 值。
创建加密的 KVM
- 使用现有的 KVM API。在创建 KVM 时,如果您在载荷定义中添加了
“encrypted”: “true”,Edge 会加密 KVM 并生成与 KVM 具有相同范围的加密密钥。 - 您无法使用键值映射操作政策创建加密的 KVM。
- 您无法加密现有的未加密 KVM。
使用加密的 KVM
- 使用键值映射操作政策获取和更新加密的 KVM 值。
- 获取加密的键值时,请在用于保存该值的变量前添加“private.”前缀。
例如:
<Get assignTo="private.secretVar">。该private.secretVar变量保存解密后的值。 - 使用该政策更新值时,您无需执行任何特殊操作。该值 将在加密的 KVM 中自动加密。
- 您还可以在 Node.js 代码中使用 apigee-access 模块访问解密后的值。使用
函数
getKeyValueMap()根据名称和范围检索 KVM。返回的对象上有两个 函数可用:getKeys(callback)用于获取键名称数组 ,get(key, callback)用于获取特定键的值。例如:var apigee = require('apigee-access'); var encryptedKVM = apigee.getKeyValueMap('VerySecureKVM', 'apiproxy'); encryptedKVM.get('secret1', function(err, secretValue) { // use the secret value here });
(APIRT-1197)
API 代理元数据中包含 OpenAPI 规范网址
当您基于 OpenAPI 规范创建 API 代理时,OpenAPI 规范的位置会存储在 API 代理元数据中。例如,如果您使用管理 API 获取代理修订版本的详细信息,则元数据会包含 OpenAPI 规范的路径,格式如下:
"spec" :
"https://raw.githubusercontent.com/apigee/api-platform-samples/master/default-proxies/helloworld/openapi/mocktarget.yaml"
此增强功能支持下一代 Edge,它会将 OpenAPI 规范链接到 API 代理、API 产品和 API 参考文档在新开发者门户中。(MGMT-2913)
使用 Sense 控制客户端 IP
为了在使用 Akamai 等路由产品时更准确地控制 Sense 机器人检测的 IP 地址查找位置,Sense 允许您使用 additionalIPVars 变量定义客户端 IP 的位置。例如,您可以设置 additionalIPVars
以使用 true-client-ip 标头,该标头包含来自 Akamai 的正确 IP,以便在机器人规则中进行评估。(APIRT-3332)
已修复 Bug
此版本中修复了以下 Bug。此列表主要供用户检查其支持服务工单中的问题是否已修复,并非旨在为 所有用户提供详细信息。
| 问题 ID | 说明 |
|---|---|
| APIRT-3507 | JavaScript 服务 调用中出现间歇性错误(例如 SNI 错误) |
| APIRT-3408 | MP 版本 160817 apigee-access 分析模块以不同的方式处理消息 |
| APIRT-3390 |
刷新访问令牌政策返回的故障响应发生变化 |
| APIRT-3389 | |
| APIRT-3381 | 客户生产代理的延迟时间较长 |
| APIRT-3366 | 所有新的试用组织中的 JavaScript 政策均失败 |
| APIRT-3363 | 无效的网址解析返回状态 500,并显示 ApplicationNotFound |
| APIRT-3356 | OAuth 无效令牌消息 |
| APIRT-3355 | OAuth 代理上出现间歇性 403 错误 |
| APIRT-3285 | |
| APIRT-3261 | 凭据针对生产环境中的另一个开发应用进行验证 |
| APIRT-3234 | Node.js 应用返回 NPE |
| APIRT-3223 | Apigee 缓存过时问题 |
| APIRT-3193 | Node.js 目标服务器在移至 ASG 后挂起 |
| APIRT-3152 | cachedlogs 管理调用导致日志消息被拆分 |
| APIRT-3117 | MP 达到 100% CPU 利用率并停止提供流量 |
| APIRT-3064 | 路由器 - 来自路由器的自定义 503 错误消息 |
| APIRT-2620 | 为某些阻塞步骤使用单独的线程池,以提高负载 处理能力 |
| CORESERV-774 | 使用有效密钥和无效 apiproduct 引用进行访问会导致内部服务器 错误 |