Azure Functions Isolated Process with AzureAppConfiguration causing throttling

Thomas Baxendale 60 Reputation points
2023-08-15T14:46:00.1933333+00:00

We have a few isolated process function apps running on separate consumption plans and they are repeatedly making calls to the shared Azure App Configuration, presumably due to the server cooling down and then redoing the cold start.

This is causing our App Configuration to hit it's throttle limit in our test environments very quickly.

I'm wondering what my options are for stopping this, the things I have thought of so far are:

  1. Put the function apps on a premium plan instead
  2. Make all Azure App Configuration instances Standard tier
  3. Revert the change to Isolated process function apps and use In-proc instead
  4. Change to using App Config reference syntax like this: @Microsoft.AppConfiguration(Endpoint=<endpoint>; Key=<key>; Label=<label>)

The first 2 incur a lot extra of costs especially since we have to reproduce this in multiple regions/environments, and some of those environments are only for testing.

The third one would require quite a few code changes as .Net 7 is only supported in Isolated process mode.

The fourth means even more work in our infrastructure as code/pipelines, and even then I am unsure if it would just have the same effect.

What recommendations would people have to deal with this issue?

Azure Functions
Azure Functions
An Azure service that provides an event-driven serverless compute platform.
4,572 questions
.NET
.NET
Microsoft Technologies based on the .NET software framework.
3,575 questions
Azure App Configuration
Azure App Configuration
An Azure service that provides hosted, universal storage for Azure app configurations.
214 questions
{count} votes

Accepted answer
  1. MuthuKumaranMurugaachari-MSFT 22,261 Reputation points
    2023-08-16T18:48:01.9733333+00:00

    Thomas Baxendale Thanks for posting your question in Microsoft Q&A. Based on the description, it seems like you are hitting 1000 requests per day limit in Azure App Configuration and faced 429 throttling errors.

    #1 The first step is to estimate the total number of requests from all your applications (all func apps as well as others) which includes initial configuration loading/reloading as well as monitoring (all individual keys or use sentinel key) and the doc reference How do I estimate the number of requests my application may send to App Configuration? would be very helpful with the calculation.

    #2 Then, you can optimize the requests made to App Configuration by increasing the refresh timeout, or using sentinel key instead of individual keys etc. (see other suggestions below)

    User's image

    If you require more than 1000 requests per day, then you would need to upgrade to Standard tier which offer high availability. Please note, you cannot downgrade from Standard to Free tier later.

    #3 It seems you follow the code snippet described in Reload data from App Configuration doc (and it is good) and in isolated mode, there is middleware to refresh the configuration which is much better than in-process mode in my opinion. Also, @Microsoft.AppConfiguration(...) syntax is not going to help much with your scenario.

    I suggest you follow these steps to avoid throttling errors on App Configuration before considering Func app upgrade. I hope this helps and let me know if you have any questions or face issues.


    If you found the answer to your question helpful, please take a moment to mark it as "Yes" for others to benefit from your experience. Or simply add a comment tagging me and would be happy to answer your questions.


0 additional answers

Sort by: Most helpful