0

We have a split estate between on-premise and cloud. Our DNS is hosted on Azure DNS.

We have a program which runs on our on-premise hosted servers and updates the Azure DNS service via the Azure REST API with the server's public IP address (these servers are generally located on residential ADSL connections). Basically, a home-grown replacement for noip.com.

The program does a straight update each time, even if the IP address is unchanged. The API does of course provide read access, so we could modify our program to check the current IP first, but (obviously) the number of API calls would actually go up slightly with this approach.

The volume of requests will never be large (say, max of 300 servers with the program running every 10 minutes) but it would be higher, in proportion to the size of our account, than a typical management application might create.

I have been unable to find any information about API rate limits or usage guidelines.

What I want to avoid is an unexpected loss of service, so I would be grateful for any guidance regarding whether this would be an approved use of the API and any information regarding API rate limits.

1

Updating DNS resource records is a common enterprise scenario. With 300 servers and updating every 10 minutes (600 seconds) you are only making 0.5 api calls per second averaged. This will not be a problem.

However, I would open a support ticket with Microsoft and let them know about your situation and the IP addresses that your requests are made from to Azure DNS. Not required but also will not hurt.

  • Thanks for your advice. Unfortunately our budget doesn't stretch to a support contract just yet so I have no way of opening a technical ticket. Perhaps I´ll try under one of the other categories. – jamiecon Jan 18 '18 at 8:11
  • 1
    @jamie you can open quota tickets without a support contract, this is technically a quota question so you should be able to use that. – Sam Cogan Jan 19 '18 at 1:58
0

I contacted Microsoft Support with this question, under the 'Quota' support category.

This is the response:

If you are referring about the number of hits to the Azure DNS "create or update" method (as per the document: https://docs.microsoft.com/en-us/rest/api/dns/recordsets/createorupdate ), that will eventually be a NRP call. We don't throttle NRP calls, however at the backend the Resource Manager request are throttled as per https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-manager-request-limits . It states that "For each subscription and tenant, Resource Manager limits read requests to 15,000 per hour and write requests to 1,200 per hour. These limits apply to each Azure Resource Manager instance; there are multiple instances in every Azure region, and Azure Resource Manager is deployed to all Azure regions. So, in practice, limits are effectively much higher than those listed above, as user requests are generally serviced by many different instances.

If your application or script reaches these limits, you need to throttle your requests. This topic shows you how to determine the remaining requests you have before reaching the limit, and how to respond when you have reached the limit.

When you reach the limit, you receive the HTTP status code 429 Too many requests."

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.