按标签筛选服务总线消息

Service Bus messages filtering by label

是否可以在服务总线级别为指定订阅或主题添加消息过滤规则(按标签)?我需要在 ARM 模板中进行这样的过滤。 答案是肯定的,这样的模板应该是什么样子?

Microsoft Azure 服务总线是一个完全托管的企业消息代理,具有消息队列和发布-订阅主题。

发送到服务总线主题的消息可以从在该主题下创建的订阅中接收。订阅者可以定义他们想要从主题接收的消息。消息以一个或多个名称订阅规则的形式指定。每条规则都包含条件 select 和过滤消息。

如果没有为每个订阅配置规则,那么它将接受所有传入的消息,我们将无法应用过滤器。因此,您需要订阅和主题才能应用过滤器。

我们使用 Correlation Filters,服务总线的三个主题订阅过滤器之一,用于 Service Bus 消息过滤通过标签。下面的ARM模板格式展示了我们如何使用它。

{
  "name": "string",
  "type": "Microsoft.ServiceBus/namespaces/topics/subscriptions/rules",
  "apiVersion": "2017-04-01",
  "properties": {
    "action": {
        ...
    },
    "filterType": "string",
    "correlationFilter": {
      "properties": {},
      "correlationId": "string",
      "messageId": "string",
      "to": "string",
      "replyTo": "string",
      "label": "string",
      ...
    }
  }
}

有关详细信息,请查看此 Auto Filter Messages into Subscriptions in Azure Service Bus Topic and Microsoft.ServiceBus document