Источники вышестоящего потока артефактов Azure

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

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

Примечание.

Чтобы сохранить пакеты из вышестоящий, необходимо иметь роль веб-канала и средства чтения выше или выше. Дополнительные сведения см. в разделе Разрешения.

Достоинства

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

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

  • Детерминизм: веб-канал разрешает запросы пакетов по порядку, что приводит к большей согласованности при перестроении кода.

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

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

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

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

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

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

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

Примечание.

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

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

Упорядочить источники вышестоящий намеренно:

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

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

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

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

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

Рекомендации. Владельцы веб-каналов и издатели пакетов

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

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

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

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

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

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

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

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

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

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

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

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

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

Примечание.

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

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

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

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

Примечание.

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

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

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

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

  1. Отключите соответствующий источник вышестоящий.
  2. Опубликуйте пакет.
  3. Повторно включите источник вышестоящий.

Примечание.

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

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

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

  1. Войдите в организацию Azure DevOps и перейдите к проекту.

  2. Выберите артефакты и выберите веб-канал в раскрывающемся меню.

  3. Щелкните значок Значок шестеренки шестеренки, чтобы перейти к параметрам веб-канала, а затем выберите источники вышестоящей передачи.

    Снимок экрана: состояние последней синхронизации вышестоящий источников.

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

    Снимок экрана: сведения о сбое синхронизации.

Примечание.

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

Автономные источники вышестоящий

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

Вопросы и ответы

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

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

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

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

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

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

Вопрос. Может ли пользователь с ролью чтения веб-каналов скачать пакеты из источника вышестоящий?

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

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

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

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

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