How can we improve Microsoft Azure Functions?

Add max calls/per day|hour|minute configuration for throttling

Now- any light ddos attack that Azure will not recognize- will affect me and my account. If I know that my service shouldn't receive more than 10000 calls per day, but I can't setup limits on incoming requests.

"Daily Usage Quota (GB-Sec)"- not bad idea, but it's something internal and synthetic for me. Call/per day- is much more native metrics for users.

71 votes
Sign in
Sign in with: oidc
Signed in as (Sign out)

We’ll send you updates on this idea

Sychev Igor shared this idea  ·   ·  Flag idea as inappropriate…  ·  Admin →

Moving this work item to unplanned, as it is clear that this request is no for a global throughput limit.

We do now offer the ability to limit your maximum instances in the Premium plan, which will allow you to avoid swamping downstream resources.

We prioritized that above a max call per X limit, because our only control to limit throughput is to outright deny some number of requests above a threshold.

Keep the feedback coming!
Azure Functions Team


Sign in
Sign in with: oidc
Signed in as (Sign out)
  • Olav Tollefsen commented  ·   ·  Flag as inappropriate

    This does not appear to solve the issue of setting a max rate of requests (per day / per second or whatever) in order to avoid having to deal with massive amounts of 429 errors if the function is calling a service which have a limit on the number of requests it can deal with.

  • tali commented  ·   ·  Flag as inappropriate

    I think you're missing the point, it was a request for the consumption program.
    The problem is that in the consumption plan there is no maximum instances,
    And this creates problems later on, for example : SQL open Connections, Redis cache act.
    Is it going to be solution for the consumption plan ?

  • Anonymous commented  ·   ·  Flag as inappropriate

    Today, a function app can scale out to up to 200 servers and there's no way to limit that. That's a problem when your functions are connecting to connection limited resources such as SQL DBs. When a Queue triggered function connects to a SQL DB to perform a task, having 200 servers fire up the same function (even when batchSize=1) creates a lot of connections to the DB. This means you need to configure your DB to a more expensive plan to allow it. In my case, even 4000DTUs weren't enough since my app has 5 connection expensive functions and the queue had >40K messages. It'd be useful if I could limit it to 30 servers and not have to pay for a super expensive DB.

Feedback and Knowledge Base