如何在Azure功能中使用具有主题/订阅的ServiceBus触发器

Tho*_*mas 1 c# azureservicebus azure-servicebus-topics azure-functions

我想创建一个在将新消息添加到主题/订阅时触发的Azure功能.

目前我使用ServiceBusQueueTrigger C#模板创建了Azure函数, 并将队列名称设置为

topicPath + "/Subscriptions/" + subscriptionName
Run Code Online (Sandbox Code Playgroud)

Azure Functions ServiceBusQueueTrigger C#模板

但我有这个例外:

Microsoft.ServiceBus:无法获取实体'topic-test/Subscriptions/subscription-test',因为它不是QueueDescription类型.检查您使用的是具有正确实体类型的方法.System.Runtime.Serialization:第1行位置错误1762.期望来自命名空间' http://schemas.microsoft.com/netservices/2010/10/servicebus/connect '的元素'QueueDescription '..遇到'无',名称为' ',命名空间''..

无法在Azure功能中创建具有主题/订阅的ServiceBusTrigger

我认为Azure功能正在使用MessagingFactory.CreateMessageReceiver初始化消息泵但不是.

目前是否有对主题/订阅的支持?

mat*_*ewc 5

支持是的主题,但不幸的是我们的UI和模板落后于此 - 我们将很快发布一些更新来解决这些问题.

目前,您可以使用"高级编辑器"直接编辑触发器绑定.在那里,您可以指定您的subscriptionNametopicName值.这是一个例子:

{
  "bindings": [
    {
      "type": "serviceBusTrigger",
      "name": "message",
      "direction": "in",
      "subscriptionName": "subscription-test",
      "topicName": "topic-test",
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

通常,由于Azure Functions是在WebJobs SDK上构建的,因此我们的各种绑定将直接映射到其SDK对应项.例如,serviceBusTrigger映射到具有/ properties的ServiceBusTriggerAttribute.因此,期望在Function元数据模型中看到相同的属性.SubscriptionNameTopicName