Azure APIM通过原生服务总线策略简化了事件驱动架构
Source: InfoQ - Cloud
微软最近宣布了其API Management(APIM)服务的一个预览功能",允许开发者使用内置策略直接向Azure Service Bus发送消息。该公司表示,该功能简化了组织将其API层连接到事件驱动的异步系统的方式。
以前,开发者可以在API Management中创建自定义解决方案,将消息发送到Azure Service Bus。有了新的send-service-bus-message策略之后,他们可以直接将API调用的有效载荷转发到Service Bus的队列或主题。ApplyThing的业务架构师Brandon Verzuu在Medium博客文章"中写到:
过去,如果你想让APIM中基于HTTP的API调用触发一个异步后端进程,通常会使用Logic App或Azure Function作为通道适配器。这个组件的唯一工作是接收消息,可能应用一些转换,然后发布到Service Bus。
现在,在新策略下,当客户端向API Management中的API端点发送标准HTTP请求时,策略将请求作为消息发送到Service Bus。随后,下游消费者如逻辑应用、Azure函数或微服务会异步处理这些消息。

(图片来源:Microsoft Learn")
Luke Murray是一位Microsoft MVP,他在一篇博客文章"中描述了send-service-bus-message策略是什么样子的:
(preserveContent: true))@(context.Request.Body.As
@(DateTime.UtcNow.ToString("o"))
@(context.Request.Headers.GetValueOrDefault("Content-Type","application/json"))
@(context.Request.IpAddress)
@(context.Operation?.Name)
@(context.Api?.Name)
在Techcommunity的博客文章"中,公司概述了使用新策略的几个用例,从通过触发多个应用程序的内部工作流进行事件通知,到通过为外部系统提供基于REST的端点进行合作伙伴集成,同时能够保持基于策略的控制。
此外,APIM中的功能可以利用托管身份进行API Management和Service Bus之间的安全通信。此外,开发者可以通过APIM策略应用企业级控制,如速率限制、配额和授权,并为每个发送的消息获得API级别的日志记录和跟踪。
云解决方案架构师Stefan van der Loop在LinkedIn帖子"中评论说:
哦哇!我要说终于等到这个特性了!这让集成/解耦变得更容易、更健壮。现在,剩下的就是朝着两个服务的99.99% SLA迈进了。目前,99.8%的复合SLA正常运行时间对于生产场景来说仍然感觉有点不足。不过,队列可以作为故障转移的廉价替代方案。
关于Azure API Management的更多详细信息可在文档页面"上找到。
查看英文原文:Azure APIM Simplifies Event-Driven Architecture with Native Service Bus Policy"