Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Источники восходящих артефактов Azure позволяют разработчикам хранить пакеты из различных источников в одном канале, включая пакеты, размещенные в канале, и полученные из общедоступных реестров, таких как NuGet.org или npmjs.com. После включения внешних источников любой пакет, установленный из внешнего источника, автоматически сохраняется в репозитории.
Примечание.
Чтобы сохранять пакеты из источников, необходимо иметь роль Канал и Читатель вышестоящих источников (Совместная работа) или более высокую. Дополнительные сведения см. в разделе " Роли и разрешения канала ".
Почему используются основные источники?
Включение вышестоящих источников предлагает несколько преимуществ для управления зависимостями вашего продукта в одном канале:
Простота. Хранение всех пакетов в одном канале упрощает файлы конфигурации, такие как NuGet.config, npmrc или settings.xml. С помощью всего одного фида в файле конфигурации можно упростить настройку и свести к минимуму ошибки.
Согласованные сборки: ваш источник разрешает запросы пакетов в заданном порядке, что помогает обеспечить прогнозируемую и надежную сборку во всех средах.
целостность пакетов: ваш канал сохраняет метаданные о пакетах, сохраненных из вышестоящих источников, что позволяет проверить их подлинность и убедиться, что вы используете оригинальные версии, а не копии или потенциально вредоносные версии.
Надежность: пакеты, установленные из вышестоящих источников, автоматически сохраняются в фиде. Это обеспечивает постоянный доступ, даже если вышестоящий источник становится временно недоступным из-за обслуживания или других проблем, чтобы вы могли продолжать разработку и построение с уверенностью.
Рекомендации для потребителей пакетов
Чтобы воспользоваться преимуществами вышестоящих источников в качестве потребителя пакета, следуйте приведенным ниже рекомендациям.
Используйте один поток в файле конфигурации
Чтобы ваш канал обеспечения предоставил детерминированное восстановление, убедитесь, что файл конфигурации (например nuget.config или npmrc) указывает только один источник с включенными вышестоящими источниками.
примеры:
registry=https://pkgs.dev.azure.com/fabrikam/_packaging/FabrikamFiber/npm/registry/ always-auth=true<packageSources> <clear /> <add key="FabrikamFiber" value="https://pkgs.dev.azure.com/fabrikam/_packaging/FabrikamFiber/nuget/v3/index.json" /> </packageSources>Примечание.
NuGet компилирует несколько файлов конфигурации, чтобы определить полный набор параметров для применения. Использование
<clear />гарантирует, что все другие источники пакетов, указанные в файлах конфигурации более высокого уровня, игнорируются.
Организуйте входящие источники целенаправленно
Если вы используете только общедоступные реестры, такие как NuGet.org или npmjs.com, порядок вышестоящих источников не влияет на поведение. Запросы к ленте следуют последовательности, описанной в разделе порядка поиска.
Однако при управлении несколькими источниками, такими как сочетание веб-каналов и общедоступных реестров, каждый входящий источник обыскивается в порядке, определенном в параметрах конфигурации потока. В этих случаях рекомендуется сначала разместить общедоступные реестры в списке вышестоящих источников.
В некоторых уникальных сценариях некоторые организации изменяют пакеты программного обеспечения с открытым кодом (OSS) для решения проблем безопасности, повышения функциональности или удовлетворения конкретных внутренних требований, требующих перестроения пакета внутри организации, а не получения непосредственно из общедоступного репозитория. Если ваша организация следует этой практике, поместите вышестоящий источник, содержащий эти настраиваемые пакеты OSS перед другими общедоступными реестрами. Это гарантирует использование настраиваемых версий вместо общедоступных.
Лучшие практики для владельцев лент и публикователей пакетов
Чтобы убедиться, что веб-канал можно легко настроить в качестве вышестоящего источника, выполните следующие рекомендации.
Использование представления по умолчанию
Все недавно созданные фиды используют @Local режим просмотра по умолчанию. Это представление включает:
- Пакеты, опубликованные непосредственно в фиде.
- Пакеты, сохраненные из исходных источников.
Если вы хотите использовать другие представления, такие как представление для недавно выпущенных версий пакетов, вы можете переместить пакеты в представление @Release, а затем предоставить это представление вашим целевым потребителям. Дополнительные сведения см. в представлениях веб-канала.
Создание графа пакетов
Чтобы создать граф пакетов, просто подключитесь к представлению канала по умолчанию и установите пакет, которым вы хотите поделиться. После сохранения пакета в представлении по умолчанию пользователи, которые хотят использовать его, смогут разрешить зависимости пакетов и установить желаемую версию. Пакеты из вышестоящих источников отображаются на основе настроенного представления для соответствующего вышестоящего источника. См. Как upstreams формируют набор доступных пакетов для получения более подробной информации.
Порядок поиска
Для руководителей общедоступных пакетов, поддерживающих несколько веб-каналов, таких как NuGet и Maven, порядок запросов веб-каналов иногда может быть неясным или недетерминированным. Например, NuGet отправляет параллельные запросы ко всем каналам в файле конфигурации и обрабатывает ответы по принципу первый пришел — первый обслужен (FIFO), что может привести к непоследовательным результатам.
Источники вышестоящих источников Azure Artifacts устраняют эту неопределенность путем применения структурированного порядка поиска, выполняя поиск по каналу и его вышестоящим источникам в следующем порядке:
Пакеты, опубликованные непосредственно в веб-канале.
Пакеты, сохраненные из первичного источника.
Пакеты, доступные из вышестоящих источников. Каждый вышестоящий источник ищется в том порядке, в котором он указан в конфигурации канала.
Примечание.
Артефакты Azure не поддерживают поиск пакетов в восходящих источниках с помощью обозревателя пакетов NuGet в Visual Studio.
Сохранить пакеты из внешних источников
Если в вашей ленте включен вышестоящий источник, Azure Artifacts автоматически сохраняет копию любого пакета, установленного участником или выше из этого вышестоящего источника.
Например, можно установить пакеты непосредственно из вышестоящего источника с помощью команды, например npm install express. Кроме того, пакеты могут быть установлены как часть разрешения зависимостей, поэтому установка express также сохранит свои зависимости, например принимает.
Вышестоящий источник обеспечивает критически важную защиту для потребителей и инфраструктуры. Если общедоступный реестр испытывает простой, обслуживание или становится временно недоступным, вы все равно можете получить необходимые пакеты из веб-канала и продолжить разработку.
Примечание.
Кастомные внешние источники поддерживаются только для пакетов npm.
Переопределение пакетов из основных источников
Если в вашем канале включены внешние источники, невозможно опубликовать версию пакета, которая уже существует в одном из этих внешних источников. Например, если источник NuGet.org включен, вы не сможете опубликовать Newtonsoft.Json 10.0.3 в ваш источник, так как эта версия уже доступна на NuGet.org.
Чтобы переопределить версию пакета из вышестоящего источника:
Отключите соответствующий вышестоящий источник.
Опубликуйте нужную версию пакета в канале.
Повторно включите вышестоящий источник.
Этот рабочий процесс гарантирует, что вы можете опубликовать нужную версию при сохранении целостности вышестоящих источников.
Примечание.
Версии пакетов неизменяемы. Сохраненные пакеты остаются в фиде, даже если верхний источник отключен или удален.
Состояние здоровья входных источников
Если в веб-канале произошел сбой вышестоящего источника, метаданные для пакетов, использующих тот же протокол, больше не могут быть обновлены. Чтобы проверить состояние работоспособности вышестоящих источников, выполните следующие действия.
Войдите в организацию Azure DevOps и перейдите к проекту.
Выберите Артефакты, а затем выберите ваш веб-канал в раскрывающемся меню.
Щелкните
, чтобы открыть параметры канала, а затем выберите вышестоящие источники.
При возникновении каких-либо сбоев отобразится предупреждающее сообщение. Выберите состояние "Сбой ", чтобы просмотреть подробные сведения, в том числе причину сбоя и действия по ее устранению.
Примечание.
Для общедоступных реестров, таких как NuGet.org, обычно задержка в течение 3-6 часов между отправкой пакета в общедоступный реестр и когда она становится доступной для скачивания. Эта задержка зависит от времени задания и распространения данных. Однако если вышестоящий источник является фидом Артефактов Azure, задержка обычно не превышает несколько минут.