Share via

Manually scaling durable functions.

Girts Z 0 Reputation points
2023-04-27T16:15:45.1033333+00:00

Is there any way to manually scale durable azure functions, or at least change scale configuration.
My use case is simple, I am basically running fan-out/fan-in jobs on azure functions occasionally on demand, and usually I can very well predict the scale I need, but automated azure scaling is quite slow and takes a lot of time to reach the scale I need.

If I could basically say > start this durable azure function orchestration and warm up 200 instances, then it would be perfect. My current approach is to basically fan out into multiple separate orchestrations that ends up running on multiple identical azure function apps(basically have 10 identical function apps in azure) which gives me "faster" scaling, but this of course feels wrong.

Running on consumption plan. So the price stays the same, I would just like my fan out fan in job to be done much faster...

Azure Functions
Azure Functions

An Azure service that provides an event-driven serverless compute platform.


1 answer

Sort by: Most helpful
  1. Pramod Valavala 20,661 Reputation points Microsoft Employee Moderator
    2023-05-01T16:02:11.1533333+00:00

    @Girts Z When running on the consumption plan, there is no way to manually scale to a certain number of instances.

    You could however define concurrency throttles to limit number of activities per worker based on the expected resource requirements for the activity. This could lead to the scale controller to quickly scale out to further nodes.

    To have manual control over the number of initial nodes, you will have to use the Premium Tier where you can define the number of warmed instances to be readily available. The code that you've shared for the ScaleMonitor is also only applicable when running on the Premium Tier, though currently there is no way to configure it.

    Finally, you could also consider trying out the netherite storage provider which helps increase overall throughput but used Event Hubs which could be more costlier, but depending on your use case, could work it better for the same cost even.

    Was this answer helpful?

    0 comments No comments

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.