Регулирование

Хранилища конфигурации имеют ограничения на запросы, которые они могут обслуживать. Все запросы, превышающие выделенную квоту для хранилища конфигурации, получат HTTP-ответ 429 (слишком много запросов).

Регулирование делится на различные политики квот:

  • Всего запросов — общее количество запросов
  • Общая пропускная способность — исходящие данные в байтах
  • Хранилище — общий объем хранилища данных пользователя в байтах

Обработка регулируемых откликов

При достижении предельного значения скорости для данной квоты сервер будет отвечать на последующие запросы этого типа с кодом состояния 429. Ответ 429 будет содержать заголовок retry-after-ms, предоставляющий клиенту предполагаемое время ожидания (в миллисекундах), за которое квота восполнится.

HTTP/1.1 429 (Too Many Requests)
retry-after-ms: 10
Content-Type: application/problem+json; charset=utf-8
{
  "type": "https://azconfig.io/errors/too-many-requests",
  "title": "Resource utilization has surpassed the assigned quota",
  "policy": "Total Requests",
  "status": 429
}

В приведенном выше примере клиент превысил разрешенную квоту. Перед выполнением дальнейших запросов ему рекомендуется снизить скорость и подождать 10 миллисекунд. Клиенты должны также учесть поэтапную задержку.

Другая повторная попытка

Служба может выявлять и другие ситуаций, кроме регулирования, требующие повторной попытки клиента (например, 503 служба недоступна). Во всех таких случаях будет указан заголовок ответа retry-after-ms. Чтобы повысить надежность, клиенту рекомендуется следовать предложенному интервалу и выполнить повторную попытку.

HTTP/1.1 503 Service Unavailable
retry-after-ms: 787