我正在Azure上使用会话队列,当我将一些数据推送到队列时,我编写了一个Azure函数来触发。
请注意,我已经创建了基于statefull / session的队列。
问题是,当我此时将数据推送到队列中时,出现了类似
的错误函数“ xxx”的侦听器无法启动。 Microsoft.ServiceBus:不可能需要 会话以创建非会话式消息接收器
所以我的问题是我不能在会话中使用带有队列/主题的功能吗?
答案 0 :(得分:6)
这是一个常见问题,但是当前Web Jobs SDK以及Azure Functions目前不支持Service Bus会话。参见notna
;不幸的是,创建三年后没有任何进展。在WebJobs SDK issue中添加+1。
答案 1 :(得分:3)
您需要在使用者AF的function.json中指定属性“ IsSessionsEnabled”:true
答案 2 :(得分:0)
我认为现在可以使用Beta软件包Microsoft.Azure.WebJobs.Extensions.ServiceBus/3.1.0-beta2
实现它。
public static void Run([ServiceBusTrigger("core-test-queue1-sessions",
Connection = "AzureWebJobsServiceBus",
IsSessionsEnabled = true)]string myQueueItem,
IMessageSession messageSession,
ILogger log)
您还可以在host.json中指定新的SessionHandlerOptions部分:
{
"version": "2.0",
"extensions": {
"serviceBus": {
"SessionHandlerOptions":
{
"MaxAutoRenewDuration": "00:01:00",
"MessageWaitTimeout": "00:05:00",
"MaxConcurrentSessions": 16,
"AutoComplete": true,
}
}
}
}
https://github.com/azure/azure-webjobs-sdk/issues/529#issuecomment-491113458