다음을 통해 공유


패키지 삭제 및 복구

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022

Azure Artifacts는 직접 게시되거나 업스트림 원본에서 저장되었는지 여부에 관계없이 피드에 다양한 패키지 형식을 안전하게 저장합니다. 이전 패키지 버전이 관련성이 낮아지면 수동으로 제거하거나 보존 정책을 사용하여 공간을 확보하고 비용을 절감할 수 있습니다.

필수 조건

제품 요구 사항
Azure DevOps - 하나의 Azure DevOps 조직.
- Azure DevOps 프로젝트.
- Azure Artifacts의 피드.
- 권한:
    - 보존 정책을 설정하거나, 패키지 및 피드를 삭제하거나, 휴지통에서 패키지를 복원하려면 피드 소유자 여야 합니다.
    - 패키지를 목록 해제, 사용 중단 또는 삭제하려면 피드 게시자(기여자) 이상이어야 합니다.

패키지 삭제

Azure Artifacts에서 패키지는 변경할 수 없으므로 게시 후 버전 번호를 다시 사용하거나 수정할 수 없습니다. 피드에 패키지를 게시하면 해당 버전 번호가 영구적으로 예약됩니다. 패키지를 삭제하더라도 해당 버전은 피드 기록에 기록된 상태로 유지되며 동일한 버전 번호로 새 패키지를 게시할 수 없습니다.

피드에서 NuGet 패키지를 제거하는 방법에는 목록 해제 및 삭제라는 두 가지 방법이 있습니다. 패키지 버전을 목록에 추가하지 않으면 Azure Artifacts 피드 및 NuGet.org 검색 결과에서 패키지 버전을 숨깁니다. 패키지 버전을 삭제하면 해당 패키지가 휴지통으로 이동하여 설치할 수 없게 됩니다.

  1. Azure DevOps 조직에 로그인한 다음 프로젝트로 이동합니다.

  2. 아티팩트를 선택하고, 그런 다음 드롭다운 메뉴에서 피드를 선택합니다.

  3. 삭제할 패키지를 선택한 다음, 목록 해제 를 선택하여 Azure Artifacts 피드 및 NuGet.org 검색 결과에서 숨기거나 삭제 를 선택하여 휴지통으로 이동합니다.

    Azure Artifacts에서 NuGet 패키지를 삭제하거나 목록 해제하는 방법을 표시하는 스크린샷

패키지 목록 해제(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일 후에 자동으로 삭제되지만 이 기간 동안 스토리지 사용량에 계산됩니다. 더 빨리 제거하려면 다음 단계에 따라 휴지통에서 수동으로 삭제할 수 있습니다.

  1. Azure DevOps 조직에 로그인한 다음 프로젝트로 이동합니다.

  2. 아티팩트를 선택한 후 드롭다운 메뉴에서 피드를 선택합니다.

  3. 오른쪽 위 모서리에서 휴지통을 선택합니다.

  4. 영구적으로 삭제할 패키지를 선택한 다음 영구 삭제를 선택합니다.

    Azure Artifacts에서 패키지를 영구적으로 삭제하는 방법을 표시하는 스크린샷

  5. 영구 삭제를 다시 선택하여 결정을 확인합니다. 패키지가 영구적으로 삭제됩니다.

    패키지를 영구적으로 삭제하기 전에 확인 메시지를 표시하는 스크린샷

보존 정책을 사용하여 자동으로 패키지 삭제

피드의 패키지 버전 수가 증가함에 따라 스토리지 사용량이 빠르게 증가할 수 있습니다. 보존 정책을 설정하여 이전 패키지 버전을 자동으로 삭제하고 공간을 확보할 수 있습니다.

패키지를 무기한으로 보관해야 하는 경우 보기로 전환하세요. 보기의 패키지는 보존 정책에서 제외되며 삭제되지 않습니다. 피드에 대한 보존 정책을 구성하려면 다음 단계를 수행합니다.

비고

Azure Artifacts는 패키지 강등을 지원하지 않습니다. 패키지가 보기로 승격된 후에는 @local로 되돌릴 수 없게 됩니다.

  1. Azure DevOps 조직에 로그인한 다음 프로젝트로 이동합니다.

  2. 아티팩트 선택, 오른쪽 위 모서리에서 기어 아이콘 기어 아이콘을 선택하여 피드의 설정에 액세스합니다.

  3. 피드 세부 정보를 선택하고 패키지 보존 사용 확인란을 선택하고 다음 설정을 구성합니다.

    • 패키지당 최대 버전 수: 유지하려는 각 패키지의 버전 수입니다.

    • 최근에 다운로드한 패키지를 보관할 일: 패키지는 여기에 지정된 지정된 일 수 동안 다운로드되지 않은 경우에만 삭제됩니다.

  4. 완료되면 저장을 선택합니다.

    피드에 대한 보존 정책을 설정하는 방법을 표시하는 스크린샷

비고

보존 정책을 사용하도록 설정하면 다음 조건이 모두 충족되는 경우에만 패키지 버전이 삭제됩니다.

  • 게시된 총 버전 수는 패키지 제한당 최대 버전 수 에 도달합니다.
  • 최근에 다운로드한 패키지를 유지하기 위해 해당 패키지의 버전이 일 단위로 지정된 기간 내에 다운로드되지 않았습니다.

삭제된 패키지 복원

삭제된 패키지는 30일 동안 휴지통에 남아 있습니다. 이 기간이 지나면 영구적으로 삭제됩니다. 휴지통에서 패키지를 복원하려면 다음 단계를 수행합니다.

  1. Azure DevOps 조직에 로그인한 다음 프로젝트로 이동합니다.

  2. 아티팩트를 선택한 다음, 휴지통을 선택합니다.

  3. 패키지를 선택한 다음 복원을 선택합니다.

  4. 복원을 다시 한 번 선택하여 결정을 확인합니다.

    삭제된 패키지를 복원하는 방법을 표시하는 스크린샷

질문 및 답변

Q: 패키지 버전 사용 중단, 목록 해제, Yank삭제 의 차이점은 무엇인가요?

A: 사용 중단은 npm 패키지에 적용되며, Unlist는 NuGet 패키지에 적용되는 동안 Yank는 Cargo 패키지에 적용됩니다. Azure Artifacts 피드에서 패키지 유형(npm, Maven, Python, Cargo 및 유니버설 패키지)을 삭제 할 수 있습니다.

  • 사용 중단 (npm): 패키지 버전을 더 이상 사용하지 않으면 패키지의 메타데이터에 경고 메시지가 추가됩니다. Azure Artifacts 및 대부분의 npm 클라이언트는 패키지를 보거나 설치할 때마다 이 경고 메시지를 표시합니다.

  • 목록 해제 (NuGet): 패키지 버전을 목록 해제하면 Azure Artifacts 피드 및 NuGet.org 검색 결과에서 패키지 버전을 숨깁니다.

  • Yank (Cargo): 패키지 버전을 'yank' 처리하면 더 이상 사용되지 않는 혹은 폐기된 것으로 표시되어 사용을 권장하지 않지만, 패키지를 삭제하지는 않습니다.

  • 삭제: 패키지 버전을 삭제하면 휴지통으로 이동하여 설치할 수 없습니다. 삭제된 패키지는 30일 이내에 휴지통에서 복원할 수 있습니다. 이 기간이 지나면 영구적으로 삭제됩니다.

Q: 모든 패키지 버전을 삭제하려면 어떻게 하나요?

A: 패키지의 모든 버전을 삭제하려면 피드에서 패키지를 선택하고 버전을 선택한 다음 버전 옆의 확인란을 선택합니다. 그러면 피드에서 해당 패키지의 모든 버전이 선택됩니다. 삭제를 선택한 다음 삭제를 다시 한 번 선택하여 확인합니다.

피드에서 모든 버전을 삭제하는 방법을 표시하는 스크린샷

Q: 보존 정책을 사용하도록 설정하면 이전 또는 기존 패키지는 어떻게 되나요?

A: 이전 또는 기존 패키지는 일시 삭제되고 휴지통으로 이동됩니다. 삭제 작업은 하루에 한 번 실행되지만 패키지의 유입으로 인해 정책이 처음으로 켜진 후 초기 지연이 있을 수 있습니다.

패키지는 영구적으로 삭제되기 전에 30일 동안 휴지통에 남아 있습니다. 청구 가능한 스토리지에서 패키지를 제거하려면 30일 기간이 끝나기 전에 웹 UI 또는 REST API를 사용하여 패키지를 수동으로 삭제할 수 있습니다.

Q: 보존 정책을 사용하지 않으려면 어떻게 하나요?

A: Azure Artifacts 보존 정책은 종속성을 관리하고 스토리지 비용 관리를 간소화하도록 설계되었습니다. 보존 정책을 사용하지 않도록 선택하는 경우 스토리지를 수동으로 관리하고 필요에 따라 소비를 모니터링하고 패키지를 삭제해야 합니다. Azure Artifacts는 조직당 2GiB의 무료 스토리지를 제공하므로 서비스가 워크플로에 적합한지 여부를 평가할 수 있습니다. 스토리지 한도를 초과하면 청구를 설정하고 스토리지 제한을 늘리지 않으면 새 아티팩트가 게시될 수 없습니다.

Q: 아티팩트 삭제 후 청구된 스토리지 양을 업데이트하는 데 얼마나 걸리나요?

A: 일반적으로 스토리지 사용량은 24시간 이내에 업데이트되어야 합니다. 그러나 경우에 따라 변경 내용을 반영하는 데 최대 48시간이 걸릴 수 있습니다. 조직의 청구 페이지의 아티팩트 사용량은 하루에 한 번 업데이트되고 아티팩트 스토리지 페이지는 더 자주 업데이트되므로 둘 사이에 약간의 불일치가 발생할 수 있습니다.