How can we improve Microsoft Azure Functions?

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.

160 votes
Sign in
(thinking…)
Sign in with: oidc
Signed in as (Sign out)

We’ll send you updates on this idea

Anders Fjeldstad shared this idea  ·   ·  Flag idea as inappropriate…  ·  Admin →

21 comments

Sign in
(thinking…)
Sign in with: oidc
Signed in as (Sign out)
Submitting...
  • James Roberts commented  ·   ·  Flag as inappropriate

    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.

  • Anonymous commented  ·   ·  Flag as inappropriate

    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 ?

    Thanks,

    Christoph

  • Anonymous commented  ·   ·  Flag as inappropriate

    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  ·   ·  Flag as inappropriate

    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.

  • Anonymous commented  ·   ·  Flag as inappropriate

    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.

  • Brandon George commented  ·   ·  Flag as inappropriate

    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  ·   ·  Flag as inappropriate

    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

  • Vossekop commented  ·   ·  Flag as inappropriate

    This is the only issue stopping us from migrating our worker role to azure functions at the moment.

  • Sam Bosell commented  ·   ·  Flag as inappropriate

    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.

  • Danny Bueno commented  ·   ·  Flag as inappropriate

    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.

← Previous 1

Feedback and Knowledge Base