所以我有一个二头肌文件,它迭代 200 多个字符串的数组,并且应该为每个字符串创建一个相关过滤器。
var strings = [ "xxx", "yyyy" ... ]
resource CorrelationFilters 'Microsoft.ServiceBus/namespaces/topics/subscriptions/rules@2021-06-01-preview' = [for code in strings: {
name: '${code}Filter'
parent: parentName
properties: {
filterType: 'CorrelationFilter'
correlationFilter: {
properties: {
subscription: code
}
}
}
}]
但是,它仅为数组中的前 100 个元素创建相关过滤器。据我所知,二头肌/代码本身没有任何问题。
所以我的问题是,在主题上创建 CorrelationFilter 是否会导致它变得“分区”?这在逻辑上是有意义的,但我似乎找不到任何表明它确实如此的东西,并且 ChatGpt 似乎认为相关过滤器不会导致它被分区。我只是想确认这是否是丢失相关滤波器的罪魁祸首。
所以,我的问题是,在某个主题上创建相关过滤器是否会导致它变得“分区”?
经过探索后,我发现主题上的
Correlation filter
不会导致主题上的任何分区。
这里的分区涉及将主题划分为更小的单元以进行操作和性能。相关过滤器不会触发任何分区行为。
参考:博客
缺少过滤器问题可能是由于以下原因造成的:
很少有部署工具(例如 Azure 中的 bicep)可能对单个部署中创建的资源数量有限制。
要检查这一点,请创建一个小字符串长度的数组(例如:一次 20 个)并部署它。如果您能够查看所有过滤器,那么它一定是二头肌的限制。
我尝试在服务总线订阅上添加少量字符串数据的相关过滤器,如图所示,它是成功的。
var strings = [ 'xxx', 'yyyy', 'zzzz']
param NamespaceName string = 'servjs'
param TopicName string = 'latestjt'
param subsc string = 'subscja'
param location string = resourceGroup().location
resource serviceBus 'Microsoft.ServiceBus/namespaces@2022-10-01-preview' = {
name: NamespaceName
location: location
properties: {
}
}
resource serviceBusTopic 'Microsoft.ServiceBus/namespaces/topics@2022-01-01-preview' = {
parent: serviceBus
name: TopicName
properties: {
}
}
resource sub 'Microsoft.ServiceBus/namespaces/topics/subscriptions@2022-10-01-preview' = {
name: subsc
properties: {}
parent: serviceBusTopic
}
resource CorrelationFilters 'Microsoft.ServiceBus/namespaces/topics/subscriptions/rules@2021-06-01-preview' = [for code in strings: {
name: '${code}Filter'
parent: sub
properties: {
filterType: 'CorrelationFilter'
correlationFilter: {
properties: {
subscription: code
}
}
}
}]
部署成功: