Support for session-enabled Azure Service Bus queues/subscriptions
Currently the queue/subscription trigger only works with queues and subscriptions that does not use sessions (RequiresSession = false). It would be very useful if the runtime would detect that sessions are enabled and adapt accordingly. As far as I can see, the actual function code would not even have to be aware.
this is being planned, will send a further update once it has started.
James Roberts commented
Any word on this? What about a work around or any alternative that would allow this to be implemented later without a complicated code change? Thanks in advance for any help on this.
Hi, is there any update if this is already implemented o a time for when implementation is planned. On Logic Apps it seems that instantiation is possible on session level (see https://social.technet.microsoft.com/wiki/contents/articles/40255.enforcing-ordered-delivery-using-azure-logic-apps-and-service-bus.aspx). Is such a config currently not possible for azure functions to instantiate them on a session level ?
I am creating multiple queues dynamically like workbook1, workbook2...workbook100. I have written one queuetrigger function which needs to be trigger for all the queues created dynamically once any message arrive
I want to trigger same trigger function in parallel whenever there is message in multiple queues.
Ryan Cole commented
I'm surprised to find that this is not supported, and slightly less surprised to see that it has been an open issue for two years.
I need that too. Servicebus queues are really cool for correlating stuff and a session trigger that calls the function with an available sessionId would help us no end.
ordering in serviceBus is guaranteed through sessions. Linking this issue to the one tracking sessions
Brandon George commented
This would be a great improvement honestly and one I'm shocked still is not in place. Seems it will be a simple addition here that could add great benefits. Specifically for service bus and queues that you desire to have sessions enabled.
Appalaraju Marpu commented
i think same kind of issue is happening with Azure Web Job.
i am using below code with Topic-Subscription with session enabled
public static void ProcessTopicMessage([ServiceBusTrigger("%ServicebusRSDTopic%", "%ServicebusRSDSubscription%")] BrokeredMessage message, TextWriter logger)
but the problem i face with continuously running web job is host.RunAndBlock(); throws below error so how to resolve this issue?
An unhandled exception of type 'System.InvalidOperationException' occurred in mscorlib.dll
Additional information: It is not possible for an entity that requires sessions to create a non-sessionful message receiver. TrackingId:074fbc74-b5e9-4fc2-886b-ed2f4e324304_G5_B15, SystemTracker:az-g3ms-servicebus:Topic:az-rsd-dev-topic|az-rsd-dev-subscription, Timestamp:5/11/2018 5:16:14 AM
Vijay Chakravarthula commented
This would be really helpful if implemented. Do we have any update on this?
This is a really unfortunate limitation for event handling scenarios
Jason Steele commented
Can we have an update on this?
Sam Bosell commented
Was this implemented? More than a few months have gone by!
Sandip Patil commented
This feature request is very helpful in our implementation as well..
Jason hylton-jones commented
We need this too! :(
This is the only issue stopping us from migrating our worker role to azure functions at the moment.
Danny Bueno commented
Same with @JesseThompson here.
Sam Bosell commented
I would add that allowing us to slow the queue down either through dynamically changing the max concurrency or some other way would help in scenarios where the downstream system can't keep up and the queue triggering needs to slow down.
Jesse Thompson commented
This is a deal breaker for me. Some of our messages MUST be processed before others.
any improvements for this?
Danny Bueno commented
I want to make sure that Queue triggers process in order (i.e. I want to save data from message 1 before message 2 tries to save), but according to the docs it looks like multiple queue messages can be processed concurrently. The setting for that can be changed through the host.json file's "serviceBus.maxConcurrrentCalls". For topics, though, I don't care about running in sequence, so concurrent executions are fine. I want to have queues trigger with maxConcurrrentCalls = 1 and topics set to something higher. Therefore, it would be great to define that at a function level. If my understanding of how queue/topic triggers work is incorrect, please let me know.