根据消息元数据过滤 ServiceBusTrigger 消息
Filter ServiceBusTrigger Messages based on Message Metadata
根据 documentation ,服务总线触发器提供了几个元数据属性。这些属性可用作其他绑定中的绑定表达式的一部分,或用作代码中的参数。这些属性是 Message class 的成员。示例:
[FunctionName("ServiceBusQueueTriggerCSharp")]
public static void Run(
[ServiceBusTrigger("myqueue", Connection = "ServiceBusConnection")]
string myQueueItem,
Int32 deliveryCount,
DateTime enqueuedTimeUtc,
string messageId,
ILogger log)
{
// Some code here
}
服务总线队列是否可以自动过滤基于元数据的消息并仅接受带有例如某些 ContentType
或 SessionId
与主题订阅中的 Correlation
和 SQL Filters
类似?
不,不可能,因为队列不支持过滤主题。您可以做的是使用 topics/subscriptions 并从订阅自动转发到队列,以便设计为仅从队列接收的代码可以继续按原样工作。
SessionId
是个例外。队列支持会话,但它更多的是用于处理而不是过滤消息。
根据 documentation ,服务总线触发器提供了几个元数据属性。这些属性可用作其他绑定中的绑定表达式的一部分,或用作代码中的参数。这些属性是 Message class 的成员。示例:
[FunctionName("ServiceBusQueueTriggerCSharp")]
public static void Run(
[ServiceBusTrigger("myqueue", Connection = "ServiceBusConnection")]
string myQueueItem,
Int32 deliveryCount,
DateTime enqueuedTimeUtc,
string messageId,
ILogger log)
{
// Some code here
}
服务总线队列是否可以自动过滤基于元数据的消息并仅接受带有例如某些 ContentType
或 SessionId
与主题订阅中的 Correlation
和 SQL Filters
类似?
不,不可能,因为队列不支持过滤主题。您可以做的是使用 topics/subscriptions 并从订阅自动转发到队列,以便设计为仅从队列接收的代码可以继续按原样工作。
SessionId
是个例外。队列支持会话,但它更多的是用于处理而不是过滤消息。