Azure服务总线主题,并非所有订阅都是从C#Azure函数方法触发的



我有3个订阅的服务总线主题,进一步获得了创建服务总线消息的HttpTrigger Azure函数。我是服务总线的新手,我的理解是,当我在Azure中创建消息功能时,所有三个订阅都应该触发,但在我的情况下,只有一个订阅会触发,而不是其他两个。我已经在Azure Service Bus Explorer中进行了检查,也看不到任何死信,所以我认为其他两个订阅没有触发。

Azure Function

[FunctionName("CreateRecord")]
public async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Function, "post", Route = "POST")] HttpRequest req
, [ServiceBus("MyTopicA", Connection = "MyTopicConnection")] IAsyncCollector<Message> servicebusMessage
)
{
//remaining code
await servicebusMessage.AddAsync(ringGoExemptionMessage);
}

`Azure服务总线"一个触发器">

[FunctionName("ProcessToElastic")]
public async Task Run([ServiceBusTrigger("MyTopicA", "exemptiontoelastic", Connection = "MyTopicConnection")]
Message message, string lockToken, MessageReceiver messageReceiver, ExecutionContext context,
[ServiceBus("providerexemptionreceivednotification", Connection = "MyTopicConnection")] IAsyncCollector<Message> reScheduleMessages)
{
//
}

Service Bus the once not Trigger

[FunctionName("ProcessToDb")]
public async Task Run([ServiceBusTrigger("MyTopicA", "exemptiontoazuredb", Connection = "MyTopicConnection")] Message message, string lockToken,
MessageReceiver messageReceiver, ExecutionContext context,
[ServiceBus("providerexemptionreceivednotification", Connection = "MyTopicConnection")] IAsyncCollector<Message> reScheduleMessages)
{
}

真的不确定我缺少了什么,或者如何在本地调试ServiceBus,这意味着我可以调试Azure功能,但不能调试服务总线??

感谢Gaurav Mantri。将你的建议作为答案发布,以便对其他面临类似问题的社区成员有所帮助。

由于服务总线不是触发的,只有函数是触发的,我们需要检查在未接收消息的订阅上定义的过滤规则。