Löschen und Wiederherstellen von Paketen

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

Azure Artifacts speichert Paketversionen, die Sie direkt in Ihren Feeds und Versionen veröffentlichen, die aus upstream-Quellen gespeichert wurden. Im Laufe der Zeit können ältere oder ungenutzte Versionen mehr Speicherplatz belegen und die Verwaltung von Feeds erschweren. Sie können Pakete manuell löschen oder Aufbewahrungsrichtlinien verwenden, um ältere Versionen automatisch zu entfernen. Gelöschte Pakete bleiben 30 Tage lang im Papierkorb, bevor Azure Artifacts sie endgültig löscht.

In diesem Artikel wird erläutert, wie Sie Pakete löschen, Aufbewahrungsrichtlinien konfigurieren und gelöschte Pakete in Azure Artifacts wiederherstellen.

Voraussetzungen

Produkt Anforderungen
Azure DevOps - Eine Azure DevOps Organisation.
- Ein Azure DevOps Projekt.
- Ein Azure Artifacts-Feed.
- Berechtigungen:
    – Sie müssen ein Feed-Eigentümer sein, um Aufbewahrungsrichtlinien festzulegen, Pakete und Feeds zu löschen oder Pakete aus dem Papierkorb wiederherzustellen.
    – Sie müssen ein Feed Publisher (Mitwirkender) oder höher sein, um Pakete zu entfernen, als veraltet zu markieren oder zurückzuziehen.

Pakete löschen

In Azure Artifacts sind Pakete unveränderlich. Nachdem Sie eine Paketversion in einem Feed veröffentlicht haben, können Sie diese Version nicht ändern oder die Versionsnummer für ein neues Paket wiederverwenden. Dieses Verhalten trägt dazu bei, die Paketintegrität in Ihren Feeds beizubehalten und verhindert, dass Builds oder Verbraucher unterschiedliche Inhalte für dieselbe Version erhalten. Selbst wenn Sie das Paket später löschen, behält Azure Artifacts die Version im Feedverlauf bei, und diese Versionsnummer bleibt dauerhaft reserviert.

Bei NuGet-Paketen können Sie entweder die Liste aufheben oder eine Paketversion löschen . Durch das Aufheben der Liste wird die Paketversion aus den Suchergebnissen in Azure Artifacts Feeds und auf NuGet.org ausgeblendet, das Paket verbleibt jedoch im Feed. Durch das Löschen einer Paketversion wird sie in den Papierkorb verschoben und zur Installation nicht verfügbar.

  1. Melden Sie sich bei Ihrer Azure DevOps-Organisation an, und navigieren Sie dann zu Ihrem Projekt.

  2. Wählen Sie Artefakte und dann Ihren Feed im Dropdownmenü aus.

  3. Wählen Sie das Paket aus, das Sie löschen möchten, und wählen Sie dann Aufheben der Listung, um es in den Suchergebnissen in Azure Artifacts-Feeds und auf NuGet.org auszublenden, oder Löschen, um es in den Papierkorb zu verschieben.

    Screenshot, der zeigt, wie Sie ein NuGet-Paket in Azure Artifacts löschen oder aufheben.

Pakete entfernen (CLI)

  1. Melden Sie sich bei Ihrer Azure DevOps-Organisation an, und navigieren Sie dann zu Ihrem Projekt.

  2. Wählen Sie Artefakte aus, und wählen Sie dann Ihren Feed aus dem Dropdownmenü aus.

  3. Wählen Sie "Mit dem Feed> verbinden"NuGet.exe aus, und suchen und kopieren Sie dann Ihre Paketquell-URL. Es sollte diesem Format folgen: https://pkgs.dev.azure.com/OrganizationName/ProjectName/_packaging/FeedName/nuget/v3/index.json.

  4. Führen Sie den folgenden Befehl aus, um Ihr Paket aus der Liste zu entfernen. Das ApiKey-Argument ist erforderlich, aber Azure Artifacts behandelt es als Platzhalterwert für diesen Vorgang, sodass Sie eine beliebige Zeichenfolge verwenden können:

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

Von Bedeutung

Azure DevOps interpretiert den Befehl als Vorgang zum Aufheben der nuget.exe delete Liste. Wenn Sie diesen Befehl ausführen, wird das Paket nicht aus Ihrem Feed gelöscht. Stattdessen blendet es das Paket aus suchergebnissen in Azure Artifacts Feeds und auf NuGet.org aus. Um ein Paket aus dem Feed zu löschen, verwenden Sie die REST-API, oder löschen Sie es manuell über die Weboberfläche.

Dauerhaftes Löschen von Paketen

Gelöschte Pakete bleiben 30 Tage lang im Papierkorb, bevor Azure Artifacts sie automatisch entfernt. Während dieses 30-Tage-Fensters zählen diese Pakete weiterhin zur Speichernutzung. Wenn Sie ein Paket nicht wiederherstellen müssen, können Sie es endgültig aus dem Papierkorb löschen, um es früher zu entfernen.

  1. Melden Sie sich bei Ihrer Azure DevOps-Organisation an, und navigieren Sie dann zu Ihrem Projekt.

  2. Wählen Sie Artefakte aus, und wählen Sie dann Ihren Feed aus dem Dropdownmenü aus.

  3. Wählen Sie in der oberen rechten Ecke den Papierkorb aus.

  4. Wählen Sie das Paket aus, das Sie entfernen möchten, und wählen Sie dann endgültig löschen aus.

    Screenshot, der zeigt, wie ein Paket in Azure Artifacts endgültig gelöscht wird.

  5. Wählen Sie "Endgültig löschen" aus, um Ihre Entscheidung zu bestätigen.

    Screenshot einer Bestätigungsmeldung, bevor Sie ein Paket endgültig löschen.

Automatisches Löschen von Paketen mit Aufbewahrungsrichtlinien

Da die Anzahl der Paketversionen in Ihrem Feed wächst, kann die Speicherauslastung schnell gesteigert werden. Aufbewahrungsrichtlinien helfen Ihnen dabei, dieses Wachstum zu verwalten, indem ältere Paketversionen, die Sie nicht mehr benötigen, automatisch entfernt werden.

Wenn Sie eine Paketversion dauerhaft beibehalten müssen, stufen Sie sie zu einer Ansicht hoch. Pakete in einer Ansicht sind von Aufbewahrungsrichtlinien ausgenommen, daher werden sie von diesen Bereinigungsregeln nicht gelöscht. Führen Sie die folgenden Schritte aus, um Aufbewahrungsrichtlinien für Ihren Feed zu konfigurieren:

Hinweis

Azure Artifacts unterstützt keine Rückstufung von Paketen. Nachdem ein Paket in eine Ansicht höhergestuft wurde, kann es nicht wieder auf @local zurückgesetzt werden.

  1. Melden Sie sich bei Ihrer Azure DevOps-Organisation an, und navigieren Sie dann zu Ihrem Projekt.

  2. Wählen Sie Artefakte aus und klicken Sie auf das Zahnradsymbol in der rechten oberen Ecke, um auf die Einstellungen Ihres Feeds zuzugreifen.

  3. Wählen Sie "Feeddetails" aus, wählen Sie " Paketaufbewahrung aktivieren" aus, und konfigurieren Sie dann die folgenden Einstellungen:

    • Maximale Anzahl von Versionen pro Paket: Die Anzahl der Versionen, die für jedes Paket beibehalten werden sollen.

    • Anzahl der Tage, für die kürzlich heruntergeladene Pakete aufbewahrt werden: Eine Paketversion wird nur gelöscht, wenn sie für die von Ihnen angegebene Anzahl von Tagen nicht mehr heruntergeladen wurde.

  4. Wählen Sie "Speichern" aus, wenn Sie fertig sind.

    Screenshot, der zeigt, wie Aufbewahrungsrichtlinien für Ihren Feed eingerichtet werden.

Hinweis

Wenn Sie Aufbewahrungsrichtlinien aktivieren, löscht Azure Artifacts eine Paketversion nur, wenn beide der folgenden Bedingungen erfüllt sind:

  • Die Gesamtzahl der veröffentlichten Versionen erreicht die maximale Anzahl von Versionen pro Paketlimit .
  • Eine Version dieses Pakets wurde nicht innerhalb des in "Tage zum Behalten kürzlich heruntergeladener Pakete" angegebenen Zeitrahmens heruntergeladen.

Wiederherstellen gelöschter Pakete

Azure Artifacts behält gelöschte Pakete 30 Tage lang im Papierkorb bei, bevor sie endgültig gelöscht werden. Während dieser Zeit können Sie eine Paketversion wiederherstellen, wenn Sie sie versehentlich gelöscht haben oder ob ein Team immer noch davon abhängt. Führen Sie die folgenden Schritte aus, um ein Paket aus dem Papierkorb wiederherzustellen:

  1. Melden Sie sich bei Ihrer Azure DevOps-Organisation an, und navigieren Sie dann zu Ihrem Projekt.

  2. Wählen Sie Artefakte aus, und wählen Sie dann den Papierkorb aus.

  3. Wählen Sie das Paket aus, das Sie wiederherstellen möchten, und wählen Sie dann "Wiederherstellen" aus.

  4. Wählen Sie " Wiederherstellen" erneut aus, um Ihre Entscheidung zu bestätigen.

    Screenshot, der zeigt, wie gelöschte Pakete wiederhergestellt werden.

Fragen und Antworten

Was ist der Unterschied zwischen dem Kennzeichnen als veraltet, dem Ausblenden aus der Liste, dem Zurückziehen und dem Löschen einer Paketversion?

Die von Ihnen verwendete Aktion hängt vom Pakettyp ab und davon, ob Sie eine Paketversion ausblenden möchten, deren Verwendung verhindern oder aus dem Feed entfernen möchten:

  • Als veraltet markieren (npm): Fügt den Paketmetadaten eine Warnmeldung hinzu. Verbraucher sehen die Warnung, wenn sie das Paket anzeigen oder installieren.
  • Unlist (NuGet): Blendet die Paketversion aus den Suchergebnissen in Azure Artifacts Feeds und auf NuGet.org aus, entfernt sie jedoch nicht aus dem Feed.
  • Yank (Cargo): Kennzeichnet die Paketversion für neue Abhängigkeiten als nicht verfügbar, ohne sie aus dem Feed zu löschen.
  • Löschen: Verschiebt die Paketversion in den Papierkorb und macht sie für die Installation oder den Download nicht verfügbar. Sie können sie 30 Tage lang wiederherstellen, bevor Azure Artifacts sie endgültig löscht.

Sie können Paketversionen aus npm-, Maven-, Python-, Cargo- und Universal Packages-Feeds löschen. Pakettypspezifische Aktionen wie das Kennzeichnen als veraltet, das Entfernen aus der Liste und das Zurückziehen sind nur für Ökosysteme verfügbar, die diese unterstützen.

Wie lösche ich alle Versionen eines Pakets?

Wenn Sie alle Versionen eines Pakets löschen möchten, wählen Sie das Paket in Ihrem Feed aus, wählen Sie "Versionen" und dann das Kontrollkästchen neben "Version " aus, um alle verfügbaren Versionen auszuwählen. Wählen Sie "Löschen" aus, und bestätigen Sie dann den Löschvorgang, wenn Sie dazu aufgefordert werden.

Screenshot, der zeigt, wie alle Versionen aus einem Feed gelöscht werden.

Was geschieht mit älteren Paketversionen, wenn ich Aufbewahrungsrichtlinien aktiviert habe?

Wenn Sie Aufbewahrungsrichtlinien aktivieren, wertet Azure Artifacts vorhandene Paketversionen und neu veröffentlichte Versionen anhand der Richtlinieneinstellungen aus. Paketversionen, die den Aufbewahrungskriterien entsprechen, werden vorläufig gelöscht und in den Papierkorb verschoben.

Der Bereinigungsauftrag wird einmal täglich ausgeführt. Wenn Sie Aufbewahrungsrichtlinien zum ersten Mal aktivieren, kann es eine anfängliche Verzögerung geben, bevor ältere Paketversionen verarbeitet werden.

Gelöschte Pakete verbleiben 30 Tage lang im Papierkorb, bevor Azure Artifacts sie endgültig löscht. Wenn Sie verhindern möchten, dass diese Pakete vor dem Ende des 30-Tage-Zeitraums auf den abrechenbaren Speicher angerechnet werden, löschen Sie sie dauerhaft aus dem Papierkorb über die Weboberfläche oder die REST-API.

Was geschieht, wenn ich keine Aufbewahrungsrichtlinien aktivieren möchte?

Azure Artifacts Aufbewahrungsrichtlinien sind darauf ausgelegt, Ihre Abhängigkeiten zu verwalten und die Speicherkostenverwaltung zu optimieren. Wenn Sie keine Aufbewahrungsrichtlinien aktivieren, müssen Sie die Paketbereinigung manuell verwalten, indem Sie die Speichernutzung überwachen und Paketversionen nach Bedarf löschen. Dieser Ansatz bietet Ihnen die vollständige Kontrolle darüber, was im Feed verbleibt, erfordert aber auch eine fortlaufende Wartung, wenn Paketversionen gesammelt werden.

Azure Artifacts umfasst 2 GiB kostenlosen Speicher pro Organisation. Nachdem Sie diesen Grenzwert überschritten haben, können Sie erst neue Artefakte veröffentlichen, nachdem Sie die Abrechnung eingerichtet und ihr Speicherlimit erhöht haben.

Wie lange dauert es, bis der abgerechnete Speicher aktualisiert wird, nachdem ich Pakete lösche?

In der Regel sollte der Speicherverbrauch innerhalb von 24 Stunden aktualisiert werden. In einigen Fällen kann es jedoch bis zu 48 Stunden dauern, bis die Änderungen widerzuspiegeln sind. Die Artefaktverwendung auf der Abrechnungsseite Ihrer Organisation wird einmal täglich aktualisiert, während die Artefaktspeicherseite häufiger aktualisiert wird, was zu einer geringfügigen Diskrepanz zwischen den beiden führen kann.