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.

144 votes
Sign in
Check!
(thinking…)
Reset
or sign in with
  • facebook
  • google
    Password icon
    Signed in as (Sign out)

    We’ll send you updates on this idea

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

    19 comments

    Sign in
    Check!
    (thinking…)
    Reset
    or sign in with
    • facebook
    • google
      Password icon
      Signed in as (Sign out)
      Submitting...
      • 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.

      • Chilberto commented  ·   ·  Flag as inappropriate

        I agree with Anders that this wold be very useful to address many real-world scenarios where some form of funneling and/or context is required.

      Feedback and Knowledge Base