パッケージの削除と回復

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

Azure Artifactsには、フィードに直接発行するパッケージ バージョンと、アップストリーム ソースから保存されたバージョンが格納されます。 時間が経つにつれて、古いバージョンまたは未使用のバージョンでは、ストレージの使用量が増加し、フィードの管理が困難になる可能性があります。 パッケージは手動で削除することも、アイテム保持ポリシーを使用して古いバージョンを自動的に削除することもできます。 削除されたパッケージは、Azure Artifacts によって完全に削除されるまで、30 日間ごみ箱に保持されます。

この記事では、Azure Artifactsでパッケージの削除、アイテム保持ポリシーの構成、削除されたパッケージの復元を行う方法について説明します。

前提条件

製品 要件
Azure DevOps - Azure DevOps 組織
- Azure DevOps プロジェクト
- Azure Artifacts フィード
- アクセス許可:
    - アイテム保持ポリシーの設定、パッケージとフィードの削除、ごみ箱からのパッケージの復元を行うには、フィード所有者 である必要があります。
    - パッケージを一覧から削除する、非推奨にする、またはヤンクするには、フィード パブリッシャー (共同作成者) 以上である必要があります。

パッケージを削除する

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. [Artifacts] を選択し、ドロップダウン メニューからフィードを選択します。

  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 を使用するか、Web インターフェイスから手動で削除します。

パッケージを完全に削除する

削除されたパッケージは、ごみ箱に 30 日間保持され、その後 Azure Artifacts によって自動的に削除されます。 その 30 日間の期間中、これらのパッケージは引き続きストレージ使用量にカウントされます。 パッケージを復元する必要がない場合は、ごみ箱から完全に削除して、より早く削除できます。

  1. Azure DevOps 組織にサインインしてから、プロジェクトに移動します。

  2. [Artifacts] を選択し、ドロップダウン メニューからフィードを選択します。

  3. 右上隅で [ごみ箱] を選択します。

  4. 削除するパッケージを選択し、[ 完全に削除] を選択します。

    Azure Artifactsでパッケージを完全に削除する方法を示すスクリーンショット。

  5. [完全に削除] をもう一度選択して、決定を確定します。

    パッケージを完全に削除する前の確認メッセージを示すスクリーンショット。

アイテム保持ポリシーを使用してパッケージを自動的に削除する

フィード内のパッケージ バージョンの数が増えると、ストレージの使用量が急速に増加する可能性があります。 アイテム保持ポリシーは、不要になった古いパッケージ バージョンを自動的に削除することで、その増加を管理するのに役立ちます。

パッケージ バージョンを無期限に保持する必要がある場合は、ビューに昇格 します。 ビュー内のパッケージはアイテム保持ポリシーから除外されるため、これらのクリーンアップ 規則では削除されません。 フィードの保持ポリシーを構成するには、次の手順に従います。

Azure Artifacts では、パッケージの降格はサポートされていません。 パッケージがビューに昇格されると、@localに戻すことはできません。

  1. Azure DevOps 組織にサインインしてから、プロジェクトに移動します。

  2. アーティファクトを選択し、次に右上隅の歯車アイコン を選んでフィードの設定にアクセスします。

  3. [フィードの詳細] を選択し、[パッケージの保持を有効にする] を選択して、次の設定を構成します。

    • パッケージごとのバージョンの最大数: 各パッケージに保持するバージョンの数。

    • 最近ダウンロードしたパッケージを保持する日数: パッケージ バージョンは、指定した日数だけダウンロードされなかった場合にのみ削除されます。

  4. 作業が完了したら、[保存] を選びます。

    フィードのアイテム保持ポリシーを設定する方法を示すスクリーンショット。

アイテム保持ポリシーを有効にすると、Azure Artifactsは、次の両方の条件に該当する場合にのみ、パッケージのバージョンを削除します。

  • 発行されたバージョンの合計数は、パッケージあたりの最大バージョン数 制限 に達します。
  • [最近ダウンロードされたパッケージの保持日数] で指定された期間内に、そのパッケージのバージョンがダウンロードされていない。

削除されたパッケージを復元する

Azure Artifactsは、削除されたパッケージを完全に削除する前に、ごみ箱に 30 日間保持します。 その間にパッケージ バージョンを誤って削除した場合、またはチームがまだそれに依存している場合は、パッケージ バージョンを復元できます。 ごみ箱からパッケージを復元するには、次の手順に従います。

  1. Azure DevOps 組織にサインインしてから、プロジェクトに移動します。

  2. の成果物を選択し、のごみ箱を選択してください。

  3. 復元するパッケージを選択し、[復元] を選択 します

  4. もう一度 [復元 ] を選択して、決定を確定します。

    削除されたパッケージを復元する方法を示すスクリーンショット。

Q&A(質疑応答)

パッケージ バージョンの非推奨化、リスト解除、ヤンキング、削除の違いは何ですか?

使用するアクションは、パッケージの種類と、パッケージのバージョンを非表示にするか、使用を推奨しないか、フィードから削除するかによって異なります。

  • Deprecate (npm): パッケージ メタデータに警告メッセージを追加します。 コンシューマーは、パッケージを表示またはインストールするときに警告を表示します。
  • リスト解除 (NuGet): Azure Artifacts フィードや NuGet.org の検索結果からパッケージ バージョンを非表示にしますが、フィードからパッケージ バージョンを削除しません。
  • Yank (Cargo): パッケージ バージョンをフィードから削除せずに、新しい依存関係で使用不可としてマークします。
  • 削除: パッケージのバージョンをごみ箱に移動し、インストールまたはダウンロードできないようにします。 Azure Artifacts によって完全に削除されるまでの 30 日間は、それを復元できます。

npm、Maven、Python、Cargo、Universal Packages の各フィードからパッケージ バージョンを削除できます。 非推奨、リスト解除、ヤンクなどのパッケージの種類固有のアクションは、それらをサポートするエコシステムでのみ使用できます。

パッケージのすべてのバージョンを削除するにはどうすればよいですか?

パッケージのすべてのバージョンを削除するには、フィードでパッケージを選択し、[ バージョン] を選択し、[ バージョン ] の横にあるチェック ボックスをオンにして、使用可能なすべてのバージョンを選択します。 [ 削除] を選択し、メッセージが表示されたら削除を確認します。

フィードからすべてのバージョンを削除する方法を示すスクリーンショット。

アイテム保持ポリシーを有効にすると、古いパッケージ バージョンはどうなりますか?

アイテム保持ポリシーを有効にすると、Azure Artifactsはポリシー設定に対して既存のパッケージ バージョンと新しく発行されたバージョンを評価します。 保持条件を満たすパッケージ バージョンは論理的に削除され、ごみ箱に移動されます。

クリーンアップ ジョブは 1 日に 1 回実行されます。 アイテム保持ポリシーを初めて有効にすると、古いパッケージ バージョンが処理されるまでに最初の遅延が発生する可能性があります。

削除されたパッケージは、Azure Artifacts によって完全に削除されるまで、ごみ箱に 30 日間残ります。 30 日間の期間が終了する前に、これらのパッケージが課金対象ストレージにカウントされないようにするには、Web インターフェイスまたは REST API を使用してごみ箱から完全に削除します。

アイテム保持ポリシーを有効にしたくない場合はどうすればよいですか?

Azure Artifactsアイテム保持ポリシーは、依存関係の管理とストレージ コスト管理の効率化に役立つよう設計されています。 アイテム保持ポリシーを有効にしない場合は、ストレージの使用状況を監視し、必要に応じてパッケージのバージョンを削除することで、パッケージのクリーンアップを手動で管理する必要があります。 この方法では、フィードに保持される内容を完全に制御できますが、パッケージのバージョンが蓄積されるため、継続的なメンテナンスも必要になります。

Azure Artifacts には、組織ごとに 2 GiB の無料ストレージが含まれています。 この制限を超えた後は、課金を設定して ストレージの上限を引き上げるまで、新しい成果物を発行することはできません。

パッケージを削除した後、課金対象のストレージが更新されるまでにどのくらいの時間がかかりますか?

通常、ストレージ使用量は 24 時間以内に更新されます。 ただし、場合によっては、変更が反映されるまでに最大 48 時間かかる場合があります。 組織の課金ページでの成果物の使用状況は 1 日に 1 回更新されますが、[Artifact Storage] ページは頻繁に更新されるため、2 つの間に若干の不一致が生じる可能性があります。