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
(thinking…)
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. https://docs.microsoft.com/en-us/azure/azure-functions/functions-premium-plan#plan-and-sku-settings

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!
Alex
Azure Functions Team

7 comments

Sign in
(thinking…)
Sign in with: oidc
Signed in as (Sign out)
Submitting...
  • 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