如何从 Azure API 管理将消息发送到 Azure 服务总线

可用性

重要

此功能在 API 管理的“高级”、“标准”、“基本”和“开发人员”层中可用 。

本文介绍如何使用基于策略的集成将消息从 API 管理发送到 Azure 服务总线。 使用 API 管理提供安全且可缩放的方式将消息发送到服务总线。

API 管理与用于消息传送的服务总线的集成示意图。

Azure 服务总线 是一项完全托管的企业消息传送服务,旨在分离应用程序和服务,从而在分布式系统之间实现可靠的云消息传送。 它支持 AMQP(高级消息队列协议),使系统能够将消息发送到 消息队列 ,以便进行一对一通信和发布/订阅模式 的主题 。 服务总线非常适合需要跨混合云环境进行异步作、负载调配或集成的方案。 有关详细信息,请参阅 Azure 服务总线文档

使用基于策略的集成,API 管理提供:

  • 为外部客户端保护基于 REST 的消息传送 - 缺少本机 AMQP 支持的外部系统和移动应用可以通过 API 管理使用标准 HTTP/REST API 将消息发送到服务总线。 此方法通过消除自定义中介的需求,简化了集成并增强了安全性。
  • 受治理的第三方集成 - 企业可以通过 API 管理公开服务总线终结点,并使用内置的托管标识身份验证,为合作伙伴和第三方应用程序启用安全且可观察的消息传送模式。
  • 即发即弃模型 - 无需其他后端服务即可将消息发送到服务总线,从而简化体系结构并减少操作开销。

注释

  • API 管理与服务总线的集成目前以预览版提供。
  • 仅支持将消息发送到服务总线。

先决条件

配置对服务总线的访问

若要将消息发送到服务总线,需要为 API 管理实例配置托管标识:

  1. 在 API 管理实例中为 API 管理启用系统分配的或用户分配的托管标识。

    • 如果启用用户分配的托管标识,请记下该标识的 客户端 ID
  2. 为标识分配Azure 服务总线数据发送方角色,并将其作用范围限定为服务总线。 若要分配角色,请使用 Azure 门户 或其他 Azure 工具。

配置发送服务总线消息策略

配置 send-service-bus-message 策略以将消息发送到所需的队列或主题。

例如,使用 send-service-bus-message 入站策略部分中的策略在网关收到 API 请求时发送 API 请求的请求正文:

  1. Azure 门户中,转到 API 管理实例。

  2. 在左侧菜单中,选择 API,然后选择要在其中添加策略的 API。

  3. 选择“所有操作”

  4. 在屏幕顶部,选择“ 设计 ”选项卡。

  5. “入站处理 ”或“ 出站处理 ”窗口中,选择 </> “(代码编辑器)”图标。 有关详细信息,请参阅 如何设置或编辑策略

  6. 请将光标置于inboundoutbound策略部分。

  7. send-service-bus-message 策略添加到策略配置,然后根据需要配置属性和元素。

    例如,以消息的形式发送请求正文:

    <send-service-bus-message queue-name="my-queue">
        <payload>@(context.Request.Body.As<string>())</payload>
    </send-service-bus-message>
    

    可以使用返回字符串的任何表达式作为 payload 元素的值。

  8. 选择 “保存” 以保存更新的策略配置。 只要保存,此策略就会立即处于活动状态,消息将发送到指定的服务总线。