Поделиться через


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

Azure DevOps Services

Средства и интеграции между службами повышают эффективность служб Azure DevOps Services. Если вы не осторожны, автоматизированные средства могут выйти из-под контроля и сгенерировать высокую частоту запросов. Запросы могут привести к тому, что Azure DevOps будет принудительно применять ограничения скорости для вашей организации. Чтобы снизить риск достижения ограничений частоты запросов, следуйте этим лучшим практикам при интеграции с интерфейсами REST API для Azure DevOps.

Подсказка

Вы можете использовать ИИ, чтобы помочь с этой задачей позже в этой статье или ознакомиться с включение помощи ИИ в Azure DevOps MCP Server, чтобы начать работу.

Отправляйте только выполнимые рабочие элементы

Отправляйте в Azure DevOps только те элементы, с которыми ваша команда планирует работать или заняться в будущем. До тех пор, пока не потребуется, не добавляйте рабочие элементы в Azure DevOps. Например, не пытайтесь хранить данные телеметрии в Azure DevOps.

Обслуживание собственного хранилища данных

Не добавляйте рабочие элементы в Azure DevOps ради того, чтобы они были все в одном месте. службы Azure DevOps не предназначены в качестве службы хранилища данных. Обслуживание собственного хранилища данных.

Объедините ваши изменения в пакет

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

Ограничьте свои правки

Многочисленные версии одного рабочего элемента создают излишнюю нагрузку и вызывают проблемы с производительностью. Рекомендуется выполнять следующие задачи:

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

Примечание.

Ограничение на редакцию рабочего элемента в 10 000 действует для обновлений, сделанных через REST API. Это ограничение ограничивает обновления из REST API, но обновления с веб-портала не затрагиваются.

Оптимизация запросов

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

Советы по повышению производительности запросов

  • По возможности поместите предложение даты или ограничения диапазона в верхней части запроса.
  • Уменьшите количество предложений, использующих Ever оператор.
  • Уменьшите количество предложений, использующих Contains оператор, за исключением тегов.
    • Contains Words Используйте оператор, если он доступен.
    • Не используйте Contains оператор в длинных текстовых полях, так как это дорого.
  • Избегайте <> операторов Not, когда это возможно.
  • Избегайте использования In Group оператора для больших групп.
  • Сведите к минимуму количество операторов Or и удостоверьтесь, что перед использованием все еще есть топ-уровневое наведение.
  • Избегайте использования OR предложения между оператором In Group и областями или путями итераций.
  • Уменьшите общее количество предложений, чтобы достичь цели, если возможно.
  • Избегайте сортировки по любым полям, кроме ключевых, таких как ID, когда это возможно.
  • Используйте настраиваемое поле в фильтрах, если вы хотите отсортировать его по пользовательскому полю.
  • При возможности укажите проект. В противном случае запрос охватывает всю коллекцию и может занять гораздо больше времени, чем это необходимо. Снимите флажок "Запрос через проекты" в правом верхнем углу редактора запросов.

Запрос по проектам

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

Корректная обработка сбоев

Обновления и запросы завершаются ошибкой, если ограничения ресурсов или частота использования пересекают пороговое значение ограничения. Например, запрос, выполняющийся дольше 30 секунд, возвращает следующую ошибку:

VS402335: The timeout period (30 seconds) elapsed prior to completion of the query or the server is not responding.

При использовании REST API убедитесь, что ваш код спроектирован для надлежащей обработки сбоев.

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

Это важно

Мы планируем в ближайшее время ввести ограничения на количество редактирований и связываний рабочих элементов. Эти ограничения определяются мониторингом производительности и отзывом клиентов.

Не используйте запросы для создания отчетов

Использование запросов и отдельных вызовов рабочих элементов — наиболее эффективный способ обеспечения соблюдения ограничений скорости в вашей организации. Не выполняйте запросы для возврата больших списков рабочих элементов. Вместо этого используйте REST API для ссылок на рабочие элементы и версий рабочих элементов.

Дополнительные сведения см. в нашем примере C# на GitHub.

Использование искусственного интеллекта для улучшения проектирования интеграции

Если у вас есть Azure DevOps MCP Server подключен к агенту ИИ в режиме агента, можно использовать запросы естественного языка для разработки эффективных интеграции.

задачи Пример запроса
Избегайте ограничений скорости How do I design my Azure DevOps integration to avoid hitting rate limits when syncing thousands of work items?
Используйте API отчетов Show me how to use the Azure DevOps reporting work item revisions API instead of individual queries for bulk data retrieval
Реализация кэширования Write code that caches Azure DevOps REST API responses to reduce redundant calls and stay within rate limits
Корректная обработка сбоев Help me implement retry logic with exponential backoff for Azure DevOps REST API calls in C#
Проектирование интеграции webhook Show me how to set up Azure DevOps service hooks to push events instead of polling the REST API
Оптимизация пакетных операций What's the most efficient way to create many work items in Azure DevOps without exceeding rate limits?

Примечание.

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