【问题标题】:Filter ServiceBusTrigger Messages based on Message Metadata根据消息元数据过滤 ServiceBusTrigger 消息
【发布时间】:2021-10-30 17:48:32
【问题描述】:

根据documentation,服务总线触发器提供了几个元数据属性。这些属性可以用作其他绑定中绑定表达式的一部分,也可以用作代码中的参数。这些属性是 Message 类的成员。示例:

[FunctionName("ServiceBusQueueTriggerCSharp")]                    
public static void Run(
    [ServiceBusTrigger("myqueue", Connection = "ServiceBusConnection")] 
    string myQueueItem,
    Int32 deliveryCount,
    DateTime enqueuedTimeUtc,
    string messageId,
    ILogger log)
{
    // Some code here
}

服务总线队列是否可以自动过滤基于元数据的消息并仅接受带有例如某些ContentTypeSessionId 与主题订阅中的CorrelationSQL Filters 类似?

【问题讨论】:

  • 我看不到任何可以按元数据过滤的方式,但是,这就是主题的用途
  • Azure 函数触发器没有筛选功能。但是,您可以在服务总线模型中使用过滤功能,当队列消息被转发到主题实体并基于订阅过滤器被转发到您的 ServiceBusTrigger 函数所在的最终队列时。

标签: c# azure azure-functions azureservicebus azure-servicebus-queues


【解决方案1】:

不,不可能,因为队列不支持过滤主题。您可以做的是使用主题/订阅并从订阅自动转发到队列,以便仅从队列接收的代码可以继续按原样工作。

SessionId 是一个例外。队列支持会话,但更多的是用于处理而不是过滤掉消息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-15
    • 1970-01-01
    • 1970-01-01
    • 2019-10-22
    • 1970-01-01
    • 1970-01-01
    • 2020-03-31
    相关资源
    最近更新 更多