基于会话的服务总线与Azure功能

san*_*dip 3 azure azureservicebus azure-functions

我在Azure上使用会话队列,当我在队列上推送一些数据时,我写了一个Azure函数来触发.

请注意,我已经创建了基于状态/会话的队列.

问题是当我将数据推送到队列时,我得到了错误

函数'xxx'的监听器无法启动.Microsoft.ServiceBus:需要会话的实体不可能创建非会话消息接收器

所以我的问题是我无法使用带会话的队列/主题功能吗?

Mik*_*kov 6

这是一个常见问题,但目前Web Jobs SDK以及Azure Functions不支持Service Bus会话.请参阅WebJobs SDK问题 ; 不幸的是,它创建3年后没有进展.在Azure Functions问题中添加+1 .


4c7*_*b41 5

我认为现在使用 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)
Run Code Online (Sandbox Code Playgroud)

您还可以在 host.json 中指定新的 SessionHandlerOptions 部分:

{
    "version": "2.0",
    "extensions": {
        "serviceBus": {
            "SessionHandlerOptions":
             {
                "MaxAutoRenewDuration": "00:01:00",
                "MessageWaitTimeout": "00:05:00",
                "MaxConcurrentSessions": 16,
                "AutoComplete": true,
             }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

https://github.com/azure/azure-webjobs-sdk/issues/529#issuecomment-491113458