如何在 Azure 函数中使用带有 topic/subscription 的 ServiceBus 触发器
How to use a ServiceBus Trigger with a topic/subscription in an Azure Function
我想创建一个 Azure 函数,当新消息添加到 topic/subscription 时会触发该函数。
目前,我使用 ServiceBusQueueTrigger C# 模板 创建了一个 Azure Function,并将队列名称设置为
topicPath + "/Subscriptions/" + subscriptionName
但是我有这个例外:
Microsoft.ServiceBus: Cannot get entity 'topic-test/Subscriptions/subscription-test' because it is not of type QueueDescription. Check that you are using method(s) with the correct entity type. System.Runtime.Serialization: Error in line 1 position 1762. Expecting element 'QueueDescription' from namespace 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'.. Encountered 'None' with name '', namespace ''. .
我以为 Azure 函数正在使用 MessagingFactory.CreateMessageReceiver 来初始化消息泵,但不是。
目前 topic/subscription 有任何支持吗?
是的,支持主题,但不幸的是,我们的 UI 和模板落后于此 - 我们将很快发布一些更新来解决这些问题。
目前,您可以使用高级编辑器直接编辑您的触发器绑定。您可以在此处指定 subscriptionName
和 topicName
值。这是一个例子:
{
"bindings": [
{
"type": "serviceBusTrigger",
"name": "message",
"direction": "in",
"subscriptionName": "subscription-test",
"topicName": "topic-test",
}
]
}
一般来说,由于 Azure Functions 构建在 WebJobs SDK 之上,我们的各种绑定直接映射到对应的 SDK。例如 serviceBusTrigger
映射到具有 SubscriptionName
/TopicName
属性的 ServiceBusTriggerAttribute。因此,期望在函数元数据模型中看到相同的属性。
我想创建一个 Azure 函数,当新消息添加到 topic/subscription 时会触发该函数。
目前,我使用 ServiceBusQueueTrigger C# 模板 创建了一个 Azure Function,并将队列名称设置为
topicPath + "/Subscriptions/" + subscriptionName
但是我有这个例外:
Microsoft.ServiceBus: Cannot get entity 'topic-test/Subscriptions/subscription-test' because it is not of type QueueDescription. Check that you are using method(s) with the correct entity type. System.Runtime.Serialization: Error in line 1 position 1762. Expecting element 'QueueDescription' from namespace 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'.. Encountered 'None' with name '', namespace ''. .
我以为 Azure 函数正在使用 MessagingFactory.CreateMessageReceiver 来初始化消息泵,但不是。
目前 topic/subscription 有任何支持吗?
是的,支持主题,但不幸的是,我们的 UI 和模板落后于此 - 我们将很快发布一些更新来解决这些问题。
目前,您可以使用高级编辑器直接编辑您的触发器绑定。您可以在此处指定 subscriptionName
和 topicName
值。这是一个例子:
{
"bindings": [
{
"type": "serviceBusTrigger",
"name": "message",
"direction": "in",
"subscriptionName": "subscription-test",
"topicName": "topic-test",
}
]
}
一般来说,由于 Azure Functions 构建在 WebJobs SDK 之上,我们的各种绑定直接映射到对应的 SDK。例如 serviceBusTrigger
映射到具有 SubscriptionName
/TopicName
属性的 ServiceBusTriggerAttribute。因此,期望在函数元数据模型中看到相同的属性。