如何使用 Azure Function 应用筛选服务总线事件?

时间:2021-04-28 10:16:03

标签: azure-functions azure-servicebus-topics

如何使用 Azure Function 应用筛选服务总线事件?如果我有一个“事件”主题,并且我将 10 个不同的事件发布到一个主题。如何让 azure 函数过滤事件。 Azure 函数应用服务是否允许在使用函数应用时进行过滤?

1 个答案:

答案 0 :(得分:0)

队列和订阅触发azure Functions;它们不是用来过滤消息的。如果您的主题接收了 EventAEventB 两个事件,并且只有一个订阅触发了该函数,则该函数将处理这两种事件类型。您的函数代码有责任“过滤”消息并执行正确的逻辑。可以通过查看客户标头(属性)或解析有效负载(消息正文)来完成过滤。

另一种方法是让服务总线上的专用订阅接收每种消息类型,并具有两个功能,每个事件类型一个。这意味着在 ServiceBus 中创建两个订阅,一个用于 EventA,另一个用于 EventB,然后为每个事件类型部署两个函数。这样,您就可以让每个函数的逻辑只关注一种事件类型,而不必“过滤”出任何东西。

另一种方法是使用可以为您完成的消息传递中间件。这样你就可以有一个函数来处理两种或更多的消息类型,但保持你的代码干净并且有一个单一的责任 - 处理特定的消息类型。您可以使用 MassTransit 或 NServiceBus 来实现这一点。