Удаление и восстановление пакетов

Сервисы Azure DevOps | Azure DevOps Server | Azure DevOps Server 2022

Azure Artifacts хранит версии пакетов, которые вы публикуете непосредственно в своих лентах, а также версии, сохранённые из вышестоящих источников. Со временем старые или неиспользуемые версии могут занимать больше места в хранилище и затруднять управление лентами. Пакеты можно удалять вручную или использовать политики хранения для автоматического удаления старых версий. Удаленные пакеты остаются в корзине в течение 30 дней до того, как Azure Artifacts окончательно удаляет их.

В этой статье объясняется, как удалять пакеты, настраивать политики хранения и восстанавливать удаленные пакеты в Azure Artifacts.

Предпосылки

Продукт Требования
Azure DevOps — Организация Azure DevOps .
— проект Azure DevOps .
— канал артефактов Azure.
Разрешения: -
    — Чтобы настроить политики хранения, удалять пакеты и веб-каналы или восстанавливать пакеты из корзины, необходимо быть владельцем канала.
    — Вы должны быть издателем веб-каналов (сотрудником) или выше, чтобы исключить пакеты из каталога, объявить их устаревшими или удалить.

Удаление пакетов

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

Для пакетов NuGet можно отменить список или удалить версию пакета. Исключение из списка скрывает версию пакета из результатов поиска в лентах Azure Artifacts и на NuGet.org, но пакет остается в ленте. Удаление версии пакета перемещает его в корзину и делает его недоступным для установки.

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

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

  3. Выберите пакет, который вы хотите удалить, затем выберите Скрыть, чтобы скрыть его от результатов поиска в каналах Azure Artifacts и на NuGet.org, или Удалить, чтобы переместить его в корзину.

    Снимок экрана, на котором показано, как удалить или отменить список пакета NuGet в Azure Artifacts.

Отмена списка пакетов (CLI)

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

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

  3. Выберите «Подключиться к веб-каналу» >NuGet.exe, затем найдите и скопируйте URL-адрес источника пакета . Он должен соответствовать этому формату: https://pkgs.dev.azure.com/OrganizationName/ProjectName/_packaging/FeedName/nuget/v3/index.json.

  4. Выполните следующую команду, чтобы отменить список пакета. Аргумент ApiKey является обязательным, но Azure Artifacts обрабатывает его как заполнитель для этой операции, поэтому можно использовать любую строку:

    nuget.exe delete <PACKAGE_NAME> <PACKAGE_VERSION> -Source <PACKAGE_SOURCE_URL> -ApiKey <ANY_STRING>
    

Это важно

Azure DevOps интерпретирует команду nuget.exe delete как операцию отмены списка. Выполнение этой команды не удаляет пакет из канала. Вместо этого пакет скрывается в результатах поиска в лентах Azure Artifacts и на NuGet.org. Чтобы удалить пакет из ленты, используйте REST API или удалите его вручную через веб-интерфейс.

Удалить пакеты безвозвратно

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

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

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

  3. В правом верхнем углу выберите Корзину.

  4. Выберите пакет, который нужно удалить, и нажмите кнопку "Окончательно удалить".

    Снимок экрана, на котором показано, как окончательно удалить пакет в Azure Artifacts.

  5. Выберите Удалить навсегда ещё раз для подтверждения вашего решения.

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

Автоматическое удаление пакетов с помощью политик хранения

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

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

Примечание.

Артефакты Azure не поддерживают понижение версии пакета. После публикации пакета в просмотр его нельзя вернуть в @local.

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

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

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

    • Максимальное количество версий на пакет: количество версий, которые следует хранить для каждого пакета.

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

  4. Выберите Сохранить, когда закончите.

    Снимок экрана, на котором показано, как настроить политики хранения для веб-канала.

Примечание.

При включении политик хранения Azure Artifacts удаляет версию пакета, только если оба из следующих условий выполняются:

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

Восстановление удаленных пакетов

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

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

  2. Выберите Объекты, а затем выберите Корзину.

  3. Выберите пакет, который требуется восстановить, и нажмите кнопку "Восстановить".

  4. Нажмите кнопку "Восстановить ", чтобы подтвердить свое решение.

    Снимок экрана, на котором показано, как восстановить удаленные пакеты.

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

В чем разница между пометкой версии пакета как устаревшей, скрытием из списка, отзывом и удалением?

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

  • Пометить как устаревший (npm): Добавляет предупреждающее сообщение в метаданные пакета. Потребители видят предупреждение при просмотре или установке пакета.
  • Отмена списка (NuGet): скрывает версию пакета из результатов поиска в веб-каналах Azure Artifacts и на NuGet.org, но не удаляет ее из веб-канала.
  • Yank (Cargo): помечает версию пакета как недоступную для новых зависимостей, не удаляя её из ленты.
  • Удаление: перемещает версию пакета в корзину и делает ее недоступной для установки или скачивания. Вы можете восстановить его в течение 30 дней до того, как Azure Artifacts окончательно удалить его.

Вы можете удалять версии пакетов из каналов npm, Maven, Python, Cargo и Universal Packages. Действия, зависящие от типа пакета, такие как объявление устаревшим, скрытие из списка и отзыв, доступны только для тех экосистем, в которых они поддерживаются.

Как удалить все версии пакета?

Чтобы удалить все версии пакета, выберите пакет в своей ленте, выберите Версии, а затем установите флажок рядом с Версия, чтобы выбрать все доступные версии. Нажмите кнопку "Удалить", а затем подтвердите удаление при появлении запроса.

Снимок экрана, на котором показано, как удалить все версии из ленты.

Что происходит со старыми версиями пакетов при включении политик хранения?

При включении политик хранения Azure Artifacts оценивает существующие версии пакетов и недавно опубликованные версии по параметрам политики. Версии пакетов, соответствующие критериям хранения, помечаются как удалённые и перемещаются в Корзину.

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

Удаленные пакеты остаются в корзине в течение 30 дней до того, как Azure Artifacts окончательно удаляет их. Если вы хотите остановить подсчет этих пакетов к оплачиваемому хранилищу до окончания 30-дневного периода, окончательно удалите их из корзины с помощью веб-интерфейса или REST API.

Что делать, если я не хочу включить политики хранения?

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

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

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

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