Общие сведения об ограничениях и шаблонах вызовов

Применимо к: Разработчик

Используйте эту статью для планирования шаблонов вызовов SharePoint Embedded перед созданием больших объемов операций контейнера и содержимого. SharePoint Embedded выражает пропускную способность в виде единиц ресурсов в минуту (нормализованная модель затрат запросов), а не в виде фиксированной скорости запросов в секунду; В разделе Ограничения скорости API объясняется, как преобразовать единицы ресурсов в ожидаемую частоту запросов.

Ограничения, помеченные как , * можно увеличить по запросу через службу поддержки Майкрософт или контактного лица по подключению SharePoint Embedded. Запланируйте ограничение по умолчанию и запросить увеличение, прежде чем обращаться к нему в рабочей среде.

Ограничение категорий

Ограничения SharePoint Embedded влияют на:

  • Количество типов контейнеров*
  • Количество контейнеров*
  • Хранилище на тип контейнера и контейнер
  • Файлы и папки
  • Разрешения
  • Размер файла
  • Количество версий
  • Ограничения скорости API*
  • Запросы на приложение, контейнер и пользователя*

Примечание.

Эти ограничения могут изменяться. Проверьте текущие ограничения перед запуском в рабочую среду.

Ограничения размера

SharePoint Embedded применяет следующие ограничения на размер.

Ресурс Ограничение
Типы контейнеров, которые может создать клиент разработчика 25*
Типы контейнеров, которыми может владеть приложение 1
Контейнеры типа контейнера на потребляющий клиент 100,000*
Хранилище на тип контейнера на потребляющий клиент 100 ТБ*
Files и папки на контейнер 30 миллионов
Хранилище на контейнер 25 ТБ
Files и папки с аддитивными разрешениями на контейнер 5,000
Размер файла 250 ГБ
Количество версий на файл 500 (ограничение по умолчанию для автоматического журнала версий)
Количество пользователей, которыми предоставлен общий доступ для каждой папки или файла 5,000

Звездочка (*) указывает ограничение, которое можно запросить увеличение.

Из типов контейнеров, которые создает клиент, можно использовать бесплатный пробный тип контейнера для разработки и тестирования, а остальные — стандартные (оплачиваемые) типы контейнеров. Новые клиенты начинаются с более низкого значения по умолчанию, который может быть вызван по запросу. Сведения о пробной версии и стандарте см. в статье Создание и настройка типа контейнера.

Проектирование ограничений для типов контейнеров

Приложение может владеть одним типом контейнера.

Не моделировайте каждого клиента, проекта, рабочей области или пользователя как отдельный тип контейнера.

Используйте контейнеры для экземпляров хранилища приложений в типе контейнера.

Выберите тип контейнера для поведения на уровне приложения, отношений доступа и отчетности по выставлению счетов.

Сведения о планировании типов контейнеров см. в статье Общие сведения о типах контейнеров и контейнерах.

Проектирование для ограничений контейнеров

Контейнеры предоставляют границы хранилища и безопасности.

Спланируйте, сколько контейнеров может создать каждый потребляющий клиент.

Учетная запись для активных контейнеров и всех удаленных жизненных циклов контейнеров, которые могут повлиять на квоты или хранилище.

Поддерживайте границы контейнеров в соответствии с требованиями к доступу, жизненному циклу и управлению.

Разработка ограничений разрешений

SharePoint Embedded предоставляет до 5000 файлов и папок с аддитивными разрешениями на контейнер.

Избегайте разработки для каждого файла или папки, чтобы они имели уникальные разрешения, если достаточно модели на уровне контейнера или папки.

По возможности используйте членство в контейнерах и роли.

Основные понятия разрешений см. в разделе Планирование проверки подлинности и разрешений.

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

Если приложения достигнут пределов службы, SharePoint Embedded может возвращать:

  • HTTP 429 Too Many Requests.
  • HTTP 503 Server Too Busy.

Оба ответа включают заголовок Retry-After .

Заголовок сообщает приложению, сколько времени следует ждать, прежде чем повторить попытку или выполнить новый запрос.

Важно!

Регулируемые запросы учитываются в отношении ограничений использования. Если игнорировать Retry-After, приложение может привести к большему регулированию.

Руководство по повторным попыткам

Реализуйте логику повторных попыток, которая:

  • Обнаруживает HTTP 429 и 503.
  • Считывает Retry-After заголовок.
  • Ожидает указанной длительности, прежде чем повторить попытку.
  • Уменьшает параллелизм после регулирования.
  • Позволяет избежать циклов немедленного повтора.
  • Позволяет избежать пиков запросов после периода ожидания.

Используйте ограниченные повторные попытки и поверхностные постоянные сбои для телеметрии операций. Общие рекомендации по обработке ответов на регулирование см. в статье Руководство по регулированию Microsoft Graph.

Руководство по параллелизму

Уменьшите количество одновременных запросов при регулировании.

Избегайте шаблонов ускорения, которые отправляют много запросов в одно и то же время.

Распределяйте работу с течением времени при обработке больших наборов контейнеров или файлов.

Используйте очереди или фоновые рабочие роли, чтобы сгладить трафик.

При приближении к ограничениям приоритеты операций, видимых пользователем, а не фонового обслуживания.

Единицы ресурсов API

Разные API имеют разные затраты в зависимости от функциональности и сложности.

Затраты нормализуются и выражаются в виде единиц ресурсов.

Ограничения скорости API также определяются с помощью единиц ресурсов.

Каждый запрос оплачивает единицы ресурсов в зависимости от сложности:

Единицы ресурсов на запрос Операции
1 Запрос одного элемента, например get item.
2 Запрос с несколькими элементами, например вывод списка дочерних элементов, создание, обновление, удаление и отправка.
5 Все операции с ресурсами разрешений, включая $expand=permissions.

Примечание.

Затраты на единицу ресурсов могут измениться.

Ограничения скорости API

SharePoint Embedded применяет эти ограничения скорости API.

Ресурс Ограничение
Запросы на контейнер 3000 единиц ресурсов в минуту
Запросы на приложение на клиента 12 000 единиц ресурсов в минуту*
Запросы на пользователя 600 единиц ресурсов в минуту

Звездочка (*) указывает ограничение, которое можно запросить увеличение.

Ограничения приложений определяются в единицах ресурсов.

Фактические запросы в минуту зависят от вызываемого API и стоимости их единицы ресурсов.

Чтобы оценить частоту запросов, в среднем около двух единиц ресурсов на запрос и разделите ограничение на единицу ресурсов приложения на два.

Ограничение скорости создания контейнеров

На потребляющий клиент, а в часы пиковых нагрузк клиента создание контейнеров ограничено 5 новыми контейнерами в секунду. Запросы, превышающие это ограничение, ограничены по скорости. В нерабочие часы контейнеры можно создавать быстрее.

Затраты на операции разрешений

Операции с ресурсами разрешений имеют более высокую стоимость единицы ресурса.

Операции, которые включают $expand=permissions , перечислены в пяти единицах ресурсов.

Сокращение ненужного расширения разрешений.

Кэшировать решения, производные от разрешений, только если это безопасно для вашей модели безопасности.

Обновление данных разрешений при изменении членства или роли.

Рекомендации по пакетной обработке

Пакетная обработка может снизить нагрузку на клиента, но не устраняет ограничения службы или влияние на выставление счетов.

Подсчитайте каждую базовую операцию при оценке потребления единиц ресурсов и затрат на транзакцию.

Избегайте создания пакетов, которые слишком много работают с одним контейнером, приложением, клиентом или пользователем за короткий интервал.

Соблюдай регулирование ответов для пакетных операций в соответствии со сведениями об ответе, возвращаемыми платформой.

Рекомендации по увеличению производительности

Проектирование для:

  • Меньше вызовов с большим количеством разрешений.
  • Прогнозируемый параллелизм.
  • Добавочная синхронизация.
  • Откат после регулирования.
  • Разделение работы переднего и фонового.
  • Справедливость на уровне клиента для мультитенантных приложений.
  • Мониторинг частоты запросов, кодов ответов и задержки.

Сведения о влиянии транзакций API на выставление счетов см. в статье Выбор модели выставления счетов.

Операционный мониторинг

Отслеживать:

  • Скорость HTTP 429 и 503 ответов.
  • Количество повторных попыток и продолжительность ожидания.
  • Ресурсоемкие операции.
  • Запросы по приложению, клиенту, пользователю и контейнеру.
  • Длина очереди фоновых заданий.
  • Увеличение объема хранилища на контейнер и клиент.
  • Частота операций разрешений.

Используйте эти сигналы для настройки параллелизма и определения клиентов или рабочих процессов, которым требуются изменения в структуре.

Контрольный список планирования

  • Подтвердите текущие ограничения размера перед запуском рабочей среды.
  • Вместо создания нескольких типов контейнеров моделировать контейнеры.
  • Оцените объем хранилища на контейнер и на потребляющий клиент.
  • Оценка количества файлов и папок.
  • Избегайте ненужных аддитивных разрешений.
  • Реализуйте Retry-After обработку для 429 и 503.
  • Ограничьте параллелизм и избегайте пиков.
  • Оценка использования единицы ресурсов по типу операции.
  • Сокращение операций с большим количеством разрешений.
  • Мониторинг регулирования и задержки.
  • Включите влияние выставления счетов в структуру API.

Дальнейшие действия

Начните сборку с помощью краткого руководства. Создание первого приложения с помощью VS Code.