Properties Azure服务总线主题订阅,是否能够具有多个sql筛选器属性?

Properties Azure服务总线主题订阅,是否能够具有多个sql筛选器属性?,properties,filtering,metadata,azureservicebus,azure-servicebus-topics,Properties,Filtering,Metadata,Azureservicebus,Azure Servicebus Topics,只是一个关于Azure服务总线主题订阅的问题,是否可以为单个订阅分配多个属性 还可以为其中一个属性启用空值吗 我试图做的是能够使用azure函数根据标识符是否存在以某种方式过滤消息 我无法仅通过队列消息来实现这一点,因为我无法找到插入som类型元数据的方法 我的问题的另一个解决方案是一个单独的服务总线主题订阅,它的属性可以接受设置,并在两个不同的值之间移动,然后我可以通过这两个值进行过滤 我之所以要这样做,不是为了复制整个操作序列,而是为了在服务总线主题之后的操作中插入某种过滤功能 ------

只是一个关于Azure服务总线主题订阅的问题,是否可以为单个订阅分配多个属性

还可以为其中一个属性启用空值吗

我试图做的是能够使用azure函数根据标识符是否存在以某种方式过滤消息

我无法仅通过队列消息来实现这一点,因为我无法找到插入som类型元数据的方法

我的问题的另一个解决方案是一个单独的服务总线主题订阅,它的属性可以接受设置,并在两个不同的值之间移动,然后我可以通过这两个值进行过滤

我之所以要这样做,不是为了复制整个操作序列,而是为了在服务总线主题之后的操作中插入某种过滤功能

----------更新----------


好了,我更新了一下,在这件事上我取得了一些进展。与此有关的另一个问题是:

当我向servicebus主题订阅发送代理消息时,属性如下:

message.Properties['id']=1

如何访问消息属性值?
我知道这样使用可能不太方便,但这将为我打开一扇新的大门。

根据您的描述,我检查了C的Service Bus客户端库,发现在通过创建订阅时,我们只能通过单个筛选器传递单个筛选器或规则描述,如下所示:

public SubscriptionDescription CreateSubscription(string topicPath, string name, Filter filter);
public SubscriptionDescription CreateSubscription(string topicPath, string name, RuleDescription ruleDescription);
正如Sean Feldman提到的创建复杂SQL过滤器,我创建了我的应用程序来测试它。你可以参考我的测试如下:

public SubscriptionDescription CreateSubscription(string topicPath, string name, Filter filter);
public SubscriptionDescription CreateSubscription(string topicPath, string name, RuleDescription ruleDescription);
示例消息

使用筛选器创建订阅


不太明白。。。如果你问关于一个订阅有多个规则-是的,你可以。您还可以创建复杂的SQL筛选器。@SeanFeldman我在这件事上取得了一些进展,我有一个后续问题,请看更新,谢谢。我在这件事上取得了一些进展,我有一个后续问题,请看更新,谢谢。您的意思是想从客户端检索自定义属性,例如,还是?我不确定是否理解您的问题,但假设我向主题订阅发送了一条属性ID=1的消息,例如message.Properties['ID']=1;我希望能够从带有我发送到主题订阅的属性的消息中检索值1。我说得通吗P@BruceI已经更新了我的答案,并提供了用于接收消息和读取自定义属性的代码段,您可以参考它。AFAIK,消息也可以反序列化为BrokeredMessage c,您可以修改run.csx,就像这个公共静态void RunBrokeredMessage mySbMsg一样,TraceWriter记录并导入Microsoft.ServiceBus程序集。这里有一个博客,你可以参考。此外,您需要先使用SQL筛选器创建订阅,然后将其与azure function应用程序绑定。
var filter=new SqlFilter("(sys.Label='important' or sys.Label IS NOT NULL) or MessageId<0 or From LIKE '%Smith'");
namespaceManager.CreateSubscription(topicName, subName,filter);