可用性
重要
此功能在 API 管理的“高级”、“标准”、“基本”和“开发人员”层中可用 。
本文介绍如何使用基于策略的集成将消息从 API 管理发送到 Azure 服务总线。 使用 API 管理提供安全且可缩放的方式将消息发送到服务总线。
Azure 服务总线 是一项完全托管的企业消息传送服务,旨在分离应用程序和服务,从而在分布式系统之间实现可靠的云消息传送。 它支持 AMQP(高级消息队列协议),使系统能够将消息发送到 消息队列 ,以便进行一对一通信和发布/订阅模式 的主题 。 服务总线非常适合需要跨混合云环境进行异步作、负载调配或集成的方案。 有关详细信息,请参阅 Azure 服务总线文档。
使用基于策略的集成,API 管理提供:
- 为外部客户端保护基于 REST 的消息传送 - 缺少本机 AMQP 支持的外部系统和移动应用可以通过 API 管理使用标准 HTTP/REST API 将消息发送到服务总线。 此方法通过消除自定义中介的需求,简化了集成并增强了安全性。
- 受治理的第三方集成 - 企业可以通过 API 管理公开服务总线终结点,并使用内置的托管标识身份验证,为合作伙伴和第三方应用程序启用安全且可观察的消息传送模式。
- 即发即弃模型 - 无需其他后端服务即可将消息发送到服务总线,从而简化体系结构并减少操作开销。
注释
- API 管理与服务总线的集成目前以预览版提供。
- 仅支持将消息发送到服务总线。
先决条件
API 管理服务实例。 如果没有 API 管理服务实例,请参阅“创建 API 管理服务实例”。
用于将消息发送到服务总线的 API 管理 API。
用于接收消息的 Azure 服务总线命名空间中的队列或主题。 有关详细步骤,请参阅以下之一:
注释
- 如果要使用主题和订阅,请选择 Service Bus 标准版或高级版。
- 服务总线资源 可以 位于不同的订阅中,甚至在与 API 管理资源不同的租户中。
向托管身份分配角色的权限。
配置对服务总线的访问
若要将消息发送到服务总线,需要为 API 管理实例配置托管标识:
在 API 管理实例中为 API 管理启用系统分配的或用户分配的托管标识。
- 如果启用用户分配的托管标识,请记下该标识的 客户端 ID。
为标识分配Azure 服务总线数据发送方角色,并将其作用范围限定为服务总线。 若要分配角色,请使用 Azure 门户 或其他 Azure 工具。
配置发送服务总线消息策略
配置 send-service-bus-message 策略以将消息发送到所需的队列或主题。
例如,使用 send-service-bus-message
入站策略部分中的策略在网关收到 API 请求时发送 API 请求的请求正文:
在 Azure 门户中,转到 API 管理实例。
在左侧菜单中,选择 API,然后选择要在其中添加策略的 API。
选择“所有操作”。
在屏幕顶部,选择“ 设计 ”选项卡。
在 “入站处理 ”或“ 出站处理 ”窗口中,选择
</>
“(代码编辑器)”图标。 有关详细信息,请参阅 如何设置或编辑策略。请将光标置于
inbound
或outbound
策略部分。将
send-service-bus-message
策略添加到策略配置,然后根据需要配置属性和元素。例如,以消息的形式发送请求正文:
<send-service-bus-message queue-name="my-queue"> <payload>@(context.Request.Body.As<string>())</payload> </send-service-bus-message>
可以使用返回字符串的任何表达式作为
payload
元素的值。选择 “保存” 以保存更新的策略配置。 只要保存,此策略就会立即处于活动状态,消息将发送到指定的服务总线。