У нас есть разделение на локальную и облачную среду. Наш DNS размещен на Azure DNS.
У нас есть программа, которая работает на наших локальных серверах и обновляет службу Azure DNS через Azure REST API с общедоступным IP-адресом сервера (эти серверы обычно расположены на жилых ADSL-соединениях). По сути, доморощенная замена noip.com.
Программа каждый раз выполняет прямое обновление, даже если IP-адрес не изменился. API, конечно, предоставляет доступ для чтения, поэтому мы могли бы изменить нашу программу, чтобы сначала проверить текущий IP, но (очевидно) количество вызовов API на самом деле немного увеличится при таком подходе.
Объем запросов никогда не будет большим (скажем, максимум 300 серверов с программой, запускаемой каждые 10 минут), но он будет больше, пропорционально размеру нашей учетной записи, чем может создать типичное управляющее приложение.
Мне не удалось найти никакой информации об ограничениях скорости API или правилах использования.
Чего я хочу избежать, так это неожиданной потери обслуживания, поэтому я был бы признателен за любые рекомендации относительно того, будет ли это одобренное использование API, и любую информацию, касающуюся ограничений скорости API.
Обновление записей ресурсов DNS - распространенный корпоративный сценарий. С 300 серверами и обновлением каждые 10 минут (600 секунд) вы в среднем делаете только 0,5 вызовов API в секунду. Это не будет проблемой.
Однако я бы открыл заявку в службу поддержки Microsoft и сообщил бы им о вашей ситуации и IP-адресах, с которых отправляются ваши запросы в Azure DNS. Не обязательно, но тоже не помешает.
Я обратился в службу поддержки Microsoft с этим вопросом в категории поддержки «Квота».
Это ответ:
Если вы имеете в виду количество обращений к методу создания или обновления Azure DNS (согласно документу: https://docs.microsoft.com/en-us/rest/api/dns/recordsets/createorupdate ), который в конечном итоге будет вызовом NRP. Мы не регулируем вызовы NRP, однако на бэкэнде запрос Resource Manager регулируется в соответствии с https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-manager-request-limits . В нем говорится, что «для каждой подписки и клиента Resource Manager ограничивает запросы на чтение до 15 000 в час, а запросы на запись до 1200 в час. Эти ограничения применяются к каждому экземпляру Azure Resource Manager; в каждом регионе Azure есть несколько экземпляров, а также в Azure Resource Manager. развертывается во всех регионах Azure. Таким образом, на практике ограничения намного выше, чем перечисленные выше, поскольку запросы пользователей обычно обслуживаются множеством различных экземпляров.
Если ваше приложение или скрипт достигает этих ограничений, вам необходимо ограничить количество запросов. В этом разделе показано, как определить количество оставшихся запросов до достижения лимита и как ответить, когда вы его достигли.
Когда вы достигнете предела, вы получите код состояния HTTP 429 Слишком много запросов ».