TopicFilters示例也涵盖了使用 ARM 模板设置的相关过滤器。在 C# 和 PS 中也应该如此。
C#
您必须首先创建一个Microsoft.Azure.ServiceBus.CorrelationFilter
对象
var orderPlacedFilter = new CorrelationFilter();
filter.Properties["header_orderType"] = "orderPlaced";
然后通过调用将其添加到您的订阅客户端对象Microsoft.Azure.ServiceBus.SubscriptionClient.AddRuleAsync()
subsClient.AddRuleAsync("orderPlacedFilter", orderPlacedFilter);
同样,对于其他订阅及其过滤器。
电源外壳
猜猜这个文档不是很好,但我相信这应该有效
$rule = New-AzServiceBusRule -ResourceGroupName prvalav-common -Namespace prvalav-common -Topic test -Subscription test -Name SBRule -SqlExpression "test = 0"
$rule.FilterType = 1
$rule.SqlFilter = $null
$rule.CorrelationFilter.Properties["header_orderType"] = "orderPlaced"
Set-AzServiceBusRule -ResourceGroupName prvalav-common -Namespace prvalav-common -Topic test -Subscription test -Name SBRule -InputObject $rule
如果您想知道FilterType = 1
,请检查FilterType
枚举。
设置好之后,在您的函数应用中,您只需将服务总线触发器与主题/订阅详细信息一起使用。