Удаление и восстановление пакетов
Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
Артефакты Azure безопасно хранят различные типы пакетов в канале, опубликованные напрямую или сохраненные из внешних источников. Так как старые версии пакетов становятся менее актуальными, их можно удалить вручную или с помощью политик хранения для освобождения места и снижения затрат.
Предпосылки
Продукт | Требования |
---|---|
Azure DevOps | — Организация Azure DevOps . — проект Azure DevOps . — канал артефактов Azure. Разрешения: - — Чтобы настроить политики хранения, удалять пакеты и веб-каналы или восстанавливать пакеты из корзины, необходимо быть владельцем канала. — Вы должны быть издателем веб-каналов (сотрудником) или выше, чтобы исключить пакеты из каталога, объявить их устаревшими или удалить. |
Удаление пакетов
В Azure Artifacts пакеты неизменяемы, что означает, что их номера версий нельзя повторно использовать или изменять после публикации. После публикации пакета в хранилище, его номер версии постоянно зарезервирован. Даже если удалить пакет, его версия остается записанной в журнале веб-канала, и вы не можете опубликовать новый пакет с тем же номером версии.
Существует два способа удалить пакет NuGet из канала: убрать из списка и удалить. Отмена списка версий пакета скрывает его из результатов поиска в веб-каналах Azure Artifacts и NuGet.org. Удаление версии пакета перемещает его в корзину и делает его недоступным для установки.
Войдите в организацию Azure DevOps и перейдите к проекту.
Выберите Артефакты и выберите ваш веб-канал в раскрывающемся меню.
Выберите пакет, который вы хотите удалить, затем выберите Скрыть, чтобы скрыть его от результатов поиска в каналах Azure Artifacts и на NuGet.org, или Удалить, чтобы переместить его в корзину.
Отмена списка пакетов (CLI)
Войдите в организацию Azure DevOps, а затем перейдите к проекту.
Выберите Артефакты, а затем выберите ваш веб-канал в раскрывающемся меню.
Выберите «Подключиться к веб-каналу» >NuGet.exe, затем найдите и скопируйте URL-адрес источника пакета . Он должен соответствовать этому формату:
https://pkgs.dev.azure.com/OrganizationName/ProjectName/_packaging/FeedName/nuget/v3/index.json
.Выполните следующую команду, чтобы отменить список пакета. Аргумент 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 DevOps и перейдите к проекту.
Выберите Артефакты, а затем выберите ваш веб-канал в раскрывающемся меню.
В правом верхнем углу выберите Корзину.
Выберите пакет, который вы хотите удалить окончательно, а затем выберите Окончательно удалить.
Выберите Удалить навсегда ещё раз для подтверждения вашего решения. Пакет будет удален окончательно.
Автоматическое удаление пакетов с помощью политик хранения
По мере роста числа версий пакетов в вашем хранилище данных использование памяти может быстро увеличиваться. Политики хранения можно настроить для автоматического удаления старых версий пакетов и освобождения места.
Если вам нужно сохранить пакет на неопределенный срок, переместите его в представление . Пакеты в представлении исключены из правил хранения и не будут подлежать удалению. Чтобы настроить политики хранения для веб-канала, выполните следующие действия.
Примечание.
Артефакты Azure не поддерживают понижение версии пакета. После публикации пакета в просмотр его нельзя вернуть в @local.
Войдите в организацию Azure DevOps и перейдите к проекту.
Выберите артефакты, а затем щелкните значок шестеренки
в правом верхнем углу, чтобы получить доступ к настройкам ленты.
Выберите Детали канала, установите флажок Включить хранение пакетов и настройте следующие параметры:
максимальное количество версий для каждого пакета: количество версий для каждого пакета, который требуется сохранить.
дней, чтобы сохранить недавно скачанные пакеты: пакеты будут удалены только в том случае, если они не были скачаны в течение указанного количества дней, указанных здесь.
Выберите Сохранить, когда закончите.
Примечание.
Если политики хранения включены, версия пакета будет удалена только при выполнении обоих следующих условий:
- Общее количество опубликованных версий достигает ограничения максимального количества версий на пакет.
- Версия этого пакета не была загружена в течение времени, указанного в дней для хранения недавно загруженных пакетов.
Восстановление удаленных пакетов
Удаленные пакеты остаются в корзине в течение 30 дней. После этого периода они окончательно удаляются. Чтобы восстановить пакет из корзины, выполните следующие действия.
Войдите в организацию Azure DevOps и перейдите к проекту.
Выберите Объекты, а затем выберите Корзину.
Выберите пакет, а затем выберите Восстановить.
Чтобы подтвердить свое решение, выберите Восстановить еще раз.
Q&A
Вопрос. В чем разница между отменой рекомендации, отменой списка, удалением из доступаи удалением версии пакета?
Ответ. Deprecate применяется к пакетам npm, Yank применяется к пакетам Cargo, а Unlist применяется к пакетам NuGet. Вы можете удалить любой из типов пакетов (npm, Maven, Python, Cargo и универсальные пакеты) из канала Azure Artifacts.
Пометить как устаревший (npm): при объявлении версии пакета устаревшей в метаданные пакета добавляется сообщение с предупреждением. Артефакты Azure и большинство npm-клиентов будут отображать это предупреждение при просмотре или установке пакета.
Исключение из списка (NuGet): скрытие версии пакета из списка делает её невидимой в потоках Azure Artifacts и на сайте NuGet.org.
Yank (Cargo): Yanking версию пакета помечает ее как устаревшую или снятую с производства, предотвращая его использование, но пакет не удаляется.
Удалить: удаление версии пакета перемещает его в корзину, что делает его недоступным для установки. Удаленные пакеты можно восстановить из корзины для мусора в течение 30 дней. После этого периода они будут окончательно удалены.
Вопрос. Как удалить все версии пакета?
Ответ: Чтобы удалить все версии пакета, выберите пакет из вашего канала, выберите версии, а затем отметьте флажок рядом с версией. В вашей ленте будут выбраны все версии этого пакета. Выберите Удалить, а затем еще раз выберите удалить, чтобы подтвердить.
Вопрос. Что происходит с старыми или существующими пакетами при включении политик хранения?
Старые или существующие пакеты будут мягко удалены и перемещены в корзину. Задание удаления выполняется один раз в день, но после первого включения политики может возникнуть начальная задержка из-за увеличения количества пакетов.
Пакеты остаются в корзине в течение 30 дней до их окончательного удаления. Чтобы удалить пакеты из оплачиваемого хранилища, их можно удалить вручную с помощью веб-интерфейса или REST API до окончания 30-дневного периода.
Что делать, если я не хочу включать политики хранения?
Ответ. Политики хранения артефактов Azure предназначены для управления зависимостями и оптимизации управления затратами на хранение. Если вы решили не включать политики хранения, необходимо вручную управлять хранилищем, отслеживать потребление и удалять пакеты по мере необходимости. Azure Artifacts предлагает 2 ГиБ бесплатного хранилища для каждой организации, что позволяет оценить, соответствует ли служба рабочему процессу. После превышения лимита хранилища вы не сможете публиковать новые артефакты, если только вы не настроили выставление счетов и увеличить лимит хранилища.
Вопрос. Сколько времени требуется для обновления оплачиваемого объема хранилища после удаления артефактов?
Как правило, объём используемого хранилища должен обновляться в течение 24 часов. Однако в некоторых случаях может потребоваться до 48 часов для отражения изменений. Использование артефактов на странице выставления счетов организации обновляется один раз в день, в то время как страница хранилища артефактов обновляется чаще, что может привести к незначительному несоответствию между этими двумя.