From uservoice - https://feedback.azure.com/forums/355860-azure-functions/suggestions/13882992-support-for-session-enabled-azure-service-bus-queu
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.
FYI: This support would have to be added to the core WebJobs SDK, and we have several existing backlog items in that repo (e.g. https://github.com/Azure/azure-webjobs-sdk/issues/529) tracking this.
any update on this? any ETA? it's kind of a blocker for us now. many thanks!
Blocker for me as well, I cannot implement some of our core functionality in Functions if this is missing.
Same here. We are using Functions to handle EventSourced-object events. There are a few occasions where an action creates multiple events for the same object and they are all put in the queue in quick succession. I want to handle messages in parallel and we've had multiple cases of race conditions causing issues. I was looking for a way to only handle multiple messages for various objects but only one message per object. Looking at sessions, the hope is that using our SourceId (unique identifier) as the SessionId would solve our problem. If my understanding is correct, then we need this functionality. This is a huge drawback right now.
Blocker for us too. We use session'ed queues / topics and would like to migrate away from custom service bus handling code towards Function App. Please prioritize.
Same here, it is the only blocking issue from migrating our worker roles to function apps.
This feature is a real must have for many scenarios and is blocking me from using Azure Functions at this point.
@christopheranderson is there any ETA on this top 10 user voice feature?
Must have for me too. Is there a good workaround?
+1 A blocker for us
It's been on the backlog for (over) a year and a half - should we stop asking? haha
Nah, it's almost 3 years if you consider https://github.com/Azure/azure-webjobs-sdk/issues/529
This would be a blocker for us as well, really unfortunate for event handling scenarios
I'd even like the ability for it just to work even if it ignore the sessions rather than error - that way we can share the queue with some other consumers that do support session (some amqp clients).
This has been getting more requests -- I'm going to clear the milestone so we can discuss it further.
I wish we had the bandwidth to work on this :( I know its blocking many of you. But there are so many other things that are blocked on functions v2 going into general availability and we can't afford to delay that even further by picking up work items like this. So I still can't provide any ETA.
However I will note that the heightened activity on this issue in the recent months makes it clear it needs to be treated with higher priority.
ok, thanks for the transparency, hoping for you to be able to prioritize this in the future then
This really is a massive blocker for us, as we require FIFO of messages with topics using functions....
What is the release date for functions v2 runtime - Is there a finger in the air date that this may get addressed by after the v2 release?
This has hit me again today. Can we get some feedback from MS that this is at least being worked on?
@JasonBSteele At this time, I have no further updates beyond my last comment above.
We are currently working around it by using a Logic App but it is costing us 拢800 a month to run it due to the volume of messages and the 30 second polling.
This is your friendly nagging post :-)
We just couldn't use azure functions in quite a big project because of that, so how are things?
For message based architectures, sessioned queues with their ability to
using Azure funcions for both would really be a big enabler for serverless architectures.
Right now I feel sessions are mostly limited to old style processors and call/return. I think ServiceBus is really the most powerful and flexible composing mechanism you have. Pity that the only a subset can be used in a serverless environment.
We need it badly as well. Any plans to implement it?
In the meantime, I think it's important to clearly mark this as a limitation in the docs. Since sessions are a pretty standard feature of the message bus, anyone would assume that "Azure functions support the message bus" implies it supports message bus sessions.
This is a limitation, any ETA for this to be implemented ?
There is some hope as the user voice for this feature https://feedback.azure.com/forums/355860-azure-functions/suggestions/13882992-support-for-session-enabled-azure-service-bus-queu was updated on Oct 18 2018 to say that the work has been planned.
The uservoice item just says planned. Given the comments about backlogged work (trust me, I understand, I'm currently on refactoring work that's been on our critical list for 2 years) I'm guessing this isn't going to be in the next couple of weeks?
It's unfortunately a huge blocker for us moving away from legacy features. How have other people worked around it?
@delradie Currently I'm using a webjob and pooling manually from the session as for me ordering is a requirement to process the queue, the problem is that I need to run the code in a serverless fashion with an autoscaling a quite more aggresive than a webjob scaling out rules Consumption plan would be perfect for me. I'm not aware of any workaround here.
@davidrevoledo You can try this fork: https://github.com/moueldi/azure-webjobs-sdk
I had a new project called Microsoft.Azure.WebJobs.Extensions.ServiceBusSessions.
It could be published as a new nuget package.
Original version of servicebus extensions and this new package can be used together
@moueldi awesome I was trying to do something similar but you are much more advanced, please Humbly with my limitations I offer you all the help you need. 馃挴
@davidrevoledo thanks!
At the moment i'm wating some feedbacks of my implementation.
Webjob ServiceBus feature is coupled with WebJobSdk core project.
It's difficult to add new feature without refactoring.
So, i tried another approach by adding new project without changing common code.
That may not the best way for a Pull request, but the feature works for me.
I could publish a public nuget package as extension of Microsoft.Azure.WebJobs package
Any update on foreseen availability of this feature?
We could really use this in order to partition messages by having an affinity based on a number of fields in the message.
*bump
For a special case we need ordered delivery as well.
Any update on when we can epxect sessionId support in functions ? (or when it will be added to the documentation :-/ )
just it the issue too... any chance to have some info?
I'm going to close this issue as we have another one tracking the work, which will happen in the WebJobs SDK repo. See the latest comment here: https://github.com/Azure/azure-webjobs-sdk/issues/529#issuecomment-469821143
Assigning this to sprint 45 for initial design and scoping
Most helpful comment
I wish we had the bandwidth to work on this :( I know its blocking many of you. But there are so many other things that are blocked on functions v2 going into general availability and we can't afford to delay that even further by picking up work items like this. So I still can't provide any ETA.
However I will note that the heightened activity on this issue in the recent months makes it clear it needs to be treated with higher priority.