Вышестоящие источники

Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 | TFS 2017

вышестоящее источники позволяют использовать один веб-канал для хранения пакетов из разных источников: публикуемые и полученные из веб-каналов и общедоступных реестров, такие как NuGet. org, npmjs.com, Maven Central и PyPI. После включения вышестоящего источника любой пользователь, подключенный к веб-каналу, сможет установить пакет из вышестоящей копии, и копия будет сохранена в веб-канале.

Примечание

Пользовательские вышестоящее источники в настоящее время поддерживаются только для NPM.

Преимущества

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

  • Простота: файл конфигурации, такой как NuGet.config,. npmrc или settings.xml, будет содержать только один канал, чтобы снизить вероятность ошибок и ошибок.
  • Детерминированность. ваш веб-канал разрешает запросы пакетов по порядку, поэтому перестроение кода будет более целостным.
  • Проверенное: ваш веб-канал знает проверенное количество пакетов, сохраненных из вышестоящего источника, поэтому вы можете проверить, что вы используете исходный пакет, а не копию или вредоносный пакет.
  • Спокойствие: копия будет сохранена в вашем веб-канале для любого пакета, установленного из вышестоящего источника. Поэтому, если вышестоящий источник отключен, удален или находится в состоянии обслуживания, вы по-прежнему можете продолжать разработку и сборку, так как у вас есть копия этого пакета в вашем канале.

Рекомендации — потребители пакетов

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

Использование одного канала в файле конфигурации

Чтобы ваш веб-канал мог выполнить детерминированное восстановление, необходимо убедиться, что файл конфигурации, такой как nuget.config или. npmrc, ссылается только на один канал с включенными вышестоящими источниками.

Пример.

  • nuget.config

    <packageSources>
      <clear />
      <add key="FabrikamFiber" value="https://pkgs.dev.azure.com/fabrikam/_packaging/FabrikamFiber/nuget/v3/index.json" />
    </packageSources>
    

Примечание

<clear />тег является обязательным, так как NuGet создает <clear /> для определения полного набора параметров для использования. <clear />указывает NuGet игнорировать все остальные <packageSources> параметры, определенные в файлах конфигурации более высокого уровня.

  • . npmrc:

    registry=https://pkgs.dev.azure.com/fabrikam/_packaging/FabrikamFiber/npm/registry/
    always-auth=true
    

Преднамеренное упорядочение вышестоящего источника

Если вы используете только общедоступные реестры, такие как nuget.org или npmjs.com, порядок ваших вышестоящего источника не имеет значения. Запросы к веб-каналу будут следовать за порядком поиска.

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

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

Использование представления, предлагаемого по умолчанию

При добавлении удаленного веб-канала в качестве вышестоящего источника необходимо выбрать представление его канала. Это позволяет вышестоящим источникам создавать набор доступных пакетов. Дополнительные сведения см. в разделе полные графы пакетов .

Рекомендации: владельцы или издатели пакетов

Примечание

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

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

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

@localПредставление является представлением по умолчанию для всех вновь создаваемых каналов. Он содержит все пакеты, опубликованные в веб-канале или сохраненные из вышестоящего источника.

Если вы хотите использовать представления для выпуска новых версий пакета, можно повысить уровень пакета до представления, например, @release и сделать его доступным для потребителей.

Создание графа пакета

когда веб-канал запрашивает в своем вышестоящем источнике пакет, Azure Artifacts возвращает пакеты в представлении, которое было настроено для этого конкретного вышестоящего источника. Чтобы создать граф пакета, просто подключитесь к представлению веб-канала по умолчанию и установите пакет, к которому требуется предоставить общий доступ. При правильной установке пакета в представлении по умолчанию пользователи, желающие его использовать, смогут разрешить граф пакетов и установить нужный пакет.

Порядок поиска

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

Восходящие источники предотвращают это недетерминированное поведение, выполняя поиск по каналу и его вышестоящим источникам в следующем порядке:

  1. Пакеты, отправленные в веб-канал.

  2. Пакеты, сохраненные из вышестоящего источника.

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

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

Сохранение пакетов из вышестоящего источника

При включении вышестоящего источника для веб-канала пакеты, установленные из вышестоящего источника, будут автоматически сохранены в веб-канале. Эти пакеты можно установить непосредственно из восходящего потока, как показано ниже, npm install express или же они могут быть установлены в рамках разрешения зависимости (при установке express также сохраняются зависимости, такие как accepts ).

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

Переопределение пакетов из вышестоящего источника

При включении вышестоящего источника необходимо иметь в виду, что публикация версии пакета, которая уже существует в вышестоящем потоке, будет невозможна. например, при включении вышестоящего NuGet. org нельзя опубликовать Newtonsoft.Json 10.0.3 пакет, так как эта версия пакета уже существует NuGet. org.

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

Примечание

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

Состояние работоспособности

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

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

Снимок экрана, показывающий состояние работоспособности вышестоящего источника

Примечание

для общедоступных реестров, таких как NuGet. org, существует задержка 3-6 часа между отправкой пакета в общедоступный реестр и его доступности для скачивания веб-каналом. Эта задержка зависит от времени выполнения задания и распространения данных. не имеет задержки, когда вышестоящей источник является Azure Artifacts веб-каналом.

Автономные источники исходящего подключения

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

Часто задаваемые вопросы

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

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

Вопрос. что такое представления веб-канала?

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

Вопрос. не удается найти веб-канал, который я хочу настроить в качестве вышестоящего?

Ответ. Убедитесь, что владелец веб-канала является общим представлением в качестве вышестоящего источника.