使用流钩子连接共享流

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

您可以让共享流在一组 API 中执行样板请求预处理或响应后处理。您可以通过流钩子连接共享流,使它在同一位置针对所有部署到特定环境的 API 代理执行。这为您提供了一个单独实现和部署的逻辑序列,该序列不属于代理的实现代码。

由于连接到流钩子的代码处于 API 代理核心逻辑的上下文范围之外,因此它的某些行为与 API 代理不同。请注意以下几点:

  • 您必须有权将共享流连接到流钩子。您必须是组织管理员。
  • 每个流钩子只能连接一个共享流。
  • 您可以将同一共享流连接到多个流钩子。
  • 如果连接到流钩子的共享流引发故障,或者在共享流执行期间出现错误,则系统将拒绝该消息并将错误发回给调用者。
  • 如果消息在执行流钩子期间遭拒,则系统会将详细信息记录到调用代理的上下文中。共享流还可以通过自定义代码和错误消息抛出错误

以下视频演示了如何将共享流连接到流钩子,然后在经典版 Edge 界面中跟踪该流。

以下视频演示了如何将共享流连接到流钩子,然后在新版 Edge 体验界面中跟踪该流。

通过流钩子连接到代理的共享流提供了一个绝佳位置来处理实施广泛的政策要求的逻辑。例如,假设您有一个团队负责管理代表不同业务线 (LOB) 的多个团队的一组安全要求。每个 LOB 团队都可以根据自己的要求开发 API,而无需考虑更广泛的安全要求。安全团队可以在共享流中实现这些安全要求,然后使用流钩子将流程连接到 Apigee Edge 环境。由于共享流不是代理代码的一部分,因此安全团队可以根据需要进行修改,而不会影响 LOB 代码。

对于部署到代理钩子环境的每个 API 代理,通过流钩子连接的共享流会在该位置执行。因此,只有 Apigee Edge 组织的管理员可以使用流钩子。

如需详细了解共享流,请参阅可重复使用的共享流

您可以使用 Apigee Edge 管理控制台将共享流连接到流钩子。您在以下每个位置最多只能将一个共享流连接到流钩子:

  • 代理前流钩子,适用于需要在代理端点执行前实施的逻辑。

    例如,您可能具备逻辑,用于对环境中的所有 API 实施安全机制。

  • 目标前流钩子,适用于需要在调用目标之前实施的逻辑。

    例如,您可以在请求到达后端之前实现日志记录。您还可以通过从请求中移除某些字段来实施调解。

  • 目标后流钩子,适用于需要在目标响应执行后实施的逻辑。

    此逻辑将在响应从后端返回后立即实施。您可以使用它记录后端响应或者通过从后端响应中移除敏感字段来执行调解。

  • 代理后流钩子,适用于需要在代理端点执行之后且响应发送到客户端之前实施的逻辑。

    其中包括适用于 CORS、记录响应或者执行混搭或格式设置的实施逻辑。

将共享流连接到流钩子

要将共享流连接到流钩子,您必须是包含共享流的组织中的管理员。

  1. 访问“流钩子”页面,如下所述。

    Edge

    如需使用 Edge 界面访问“流钩子”页面,请执行以下操作:

    1. 登录 apigee.com/edge
    2. 选择包含共享流的组织。请参阅在组织之间切换

      共享流将可供从该组织部署到环境的任何 API 代理和共享流使用。此组织以外的 API 代理和共享流将无法使用该共享流。

    3. 在左侧导航栏中,依次选择 管理 > 环境 > 流钩子

    传统边缘(私有云)

    如需使用 Classic Edge 界面访问“流钩子”页面,请执行以下操作:

    1. 登录 http://ms-ip:9000,其中 ms-ip 是管理服务器节点的 IP 地址或 DNS 名称。
    2. 选择包含共享流的组织。请参阅在组织之间切换

      共享流将可供从该组织部署到环境的任何 API 代理和共享流使用。此组织以外的 API 代理和共享流将无法使用该共享流。

    3. 在顶部导航栏中,依次选择 API > 环境配置 > 流钩子
  2. 在流钩子列表中,根据您希望执行共享流的位置,标识要连接共享流的流钩子。
    流钩子位置 说明
    代理前流钩子 代理端点执行之前
    目标前流钩子 目标端点执行之前
    目标后流钩子 目标响应执行之后
    代理后流钩子 在代理端点执行之后且响应发送到客户端之前
  3. 将光标悬停在列表中的流钩子上可显示操作列。
  4. 点击
  5. 在“共享流”对话框的共享流下拉列表中选择要连接的共享流。
  6. 点击确定
  7. 根据需要将共享流连接到其他流钩子。