View a markdown version of this page

Aktualisiere den Status der Paketversion - CodeArtifact

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Aktualisiere den Status der Paketversion

Jede Paketversion in CodeArtifact hat einen Status, der den aktuellen Status und die Verfügbarkeit der Paketversion beschreibt. Sie können den Status der Paketversion sowohl mit der AWS CLI als auch mit der Konsole ändern.

Anmerkung

Weitere Informationen zum Status der Paketversion, einschließlich einer Liste der verfügbaren Status, finden Sie unterStatus der Paketversion.

Der Status der Paketversion wird aktualisiert

Wenn Sie den Status einer Paketversion festlegen, können Sie steuern, wie eine Paketversion verwendet werden kann, ohne sie vollständig aus dem Repository zu löschen. Wenn eine Paketversion beispielsweise den Status hatUnlisted, kann sie weiterhin wie gewohnt heruntergeladen werden, sie erscheint jedoch nicht in den Paketversionslisten, die an Befehle wie zurückgegeben werdennpm view. Die UpdatePackageVersionsStatus API ermöglicht es, den Paketversionsstatus mehrerer Versionen desselben Pakets in einem einzigen API-Aufruf festzulegen. Eine Beschreibung der verschiedenen Status finden Sie unterÜberblick über Pakete.

Verwenden Sie den update-package-versions-status Befehl, um den Status einer Paketversion in PublishedUnlisted, oder Archived zu ändern. Informationen zu den für die Verwendung des Befehls erforderlichen IAM-Berechtigungen finden Sie unterErforderliche IAM-Berechtigungen, um den Status einer Paketversion zu aktualisieren. Das folgende Beispiel setzt den Status von Version 4.1.0 des npm-Pakets auf. chalk Archived

aws codeartifact update-package-versions-status --domain my_domain --domain-owner 111122223333 --repository my_repo --format npm --package chalk --versions 4.1.0 --target-status Archived

Beispielausgabe:

{ "successfulVersions": { "4.1.0": { "revision": "+Oz8skWbwY3k8M6SrNIqNj6bVH/ax+CxvkJx+No5j8I=", "status": "Archived" } }, "failedVersions": {} }

In diesem Beispiel wird ein npm-Paket verwendet, aber der Befehl funktioniert für andere Formate identisch. Mehrere Versionen können mit einem einzigen Befehl in denselben Zielstatus verschoben werden, siehe das folgende Beispiel.

aws codeartifact update-package-versions-status --domain my_domain --domain-owner 111122223333 --repository my_repo --format npm --package chalk --versions 4.1.0 4.1.1 --target-status Archived

Beispielausgabe:

{ "successfulVersions": { "4.1.0": { "revision": "25/UjBleHs1DZewk+zozoeqH/R80Rc9gL1P8vbzVMJ4=", "status": "Archived" }, "4.1.1": { "revision": "+Oz8skWbwY3k8M6SrNIqNj6bVH/ax+CxvkJx+No5j8I=", "status": "Archived" } }, "failedVersions": {} }

Beachten Sie, dass eine Paketversion nach der Veröffentlichung nicht mehr in den Unfinished Status zurückversetzt werden kann, sodass dieser Status als Wert für den --target-status Parameter nicht zulässig ist. Um die Paketversion in den Disposed Status zu versetzen, verwenden Sie stattdessen den dispose-package-versions Befehl, wie unten beschrieben.

Erforderliche IAM-Berechtigungen, um den Status einer Paketversion zu aktualisieren

Um ein Paket update-package-versions-status anfordern zu können, benötigen Sie die codeartifact:UpdatePackageVersionsStatus entsprechende Berechtigung für die Paketressource. Das bedeutet, dass Sie pro Paket die Erlaubnis update-package-versions-status zum Aufrufen erteilen können. Eine IAM-Richtlinie, die die Erlaubnis erteilt, das npm-Paket update-package-versions-status aufzurufen, chalk würde beispielsweise eine Anweisung wie die folgende enthalten.

{ "Action": [ "codeartifact:UpdatePackageVersionsStatus" ], "Effect": "Allow", "Resource": "arn:aws:codeartifact:us-east-1:111122223333:package/my_domain/my_repo/npm//chalk" }

Aktualisierung des Status für ein NPM-Paket mit Gültigkeitsbereich

Verwenden Sie den Parameter, um den Paketversionsstatus einer NPM-Paketversion mit einem Gültigkeitsbereich zu aktualisieren. --namespace Verwenden Sie beispielsweise den folgenden Befehl, um Version 8.0.0 von aus der @nestjs/core Liste zu entfernen.

aws codeartifact update-package-versions-status --domain my_domain --domain-owner 111122223333 --repository my_repo --format npm --namespace nestjs --package core --versions 8.0.0 --target-status Unlisted

Der Status eines Maven-Pakets wird aktualisiert

Maven-Pakete haben immer eine Gruppen-ID, die in als Namespace bezeichnet wird. CodeArtifact Verwenden Sie den --namespace Parameter, um die Maven-Gruppen-ID beim Aufrufen anzugeben. update-package-versions-status Verwenden Sie beispielsweise den folgenden Befehl, um Version 2.13.1 des Maven-Pakets org.apache.logging.log4j:log4j zu archivieren.

aws codeartifact update-package-versions-status --domain my_domain --domain-owner 111122223333 --repository my_repo --format maven --namespace org.apache.logging.log4j --package log4j --versions 2.13.1 --target-status Archived

Angabe einer Paketversion (Revision)

Eine Paketversionsrevision ist eine Zeichenfolge, die einen bestimmten Satz von Assets und Metadaten für eine Paketversion angibt. Sie können eine Paketversionsrevision angeben, um den Status von Paketversionen zu aktualisieren, die sich in einem bestimmten Status befinden. Um eine Paketversionsrevision anzugeben, verwenden Sie den --version-revisions Parameter, um eine oder mehrere durch Kommas getrennte Paketversionen und die Paketversionsrevisionspaare zu übergeben. Der Status einer Paketversion wird nur aktualisiert, wenn die aktuelle Version der Paketversion dem angegebenen Wert entspricht.

Anmerkung

Der --versions Parameter muss auch definiert werden, wenn der --version-revisions Parameter verwendet wird.

aws codeartifact update-package-versions-status --domain my_domain --domain-owner 111122223333 --repository my_repo --format npm --package chalk --version-revisions "4.1.0=25/UjBleHs1DZewk+zozoeqH/R80Rc9gL1P8bzVMJ4=" --versions 4.1.0 --target-status Archived

Um mehrere Versionen mit einem einzigen Befehl zu aktualisieren, übergeben Sie eine durch Kommas getrennte Liste von Versionen und Versionsrevisionspaaren an die --version-revisions Optionen. Der folgende Beispielbefehl definiert zwei verschiedene Paketversion und Paketversionsrevisionspaare.

aws codeartifact update-package-versions-status --domain my_domain --domain-owner 111122223333 --repository my_repo --format npm --package chalk --version-revisions "4.1.0=25/UjBleHs1DZewk+zozoeqH/R80Rc9gL1P8vbzVMJ4=,4.0.0=E3lhBp0RObRTut4pkjV5c1AQGkgSA7Oxtil6hMMzelc=" --versions 4.1.0 4.0.0 --target-status Published

Beispielausgabe:

{ "successfulVersions": { "4.0.0": { "revision": "E3lhBp0RObRTut4pkjV5c1AQGkgSA7Oxtil6hMMzelc=", "status": "Published" }, "4.1.0": { "revision": "25/UjBleHs1DZewk+zozoeqH/R80Rc9gL1P8vbzVMJ4=", "status": "Published" } }, "failedVersions": {} }

Wenn mehrere Paketversionen aktualisiert werden, --version-revisions müssen die übergebenen Versionen mit den Versionen übereinstimmen, an die übergeben wurde--versions. Wenn eine Revision falsch angegeben ist, wird der Status dieser Version nicht aktualisiert.

Unter Verwendung des Parameters für den erwarteten Status

Der update-package-versions-status Befehl stellt den --expected-status Parameter bereit, der die Angabe des erwarteten aktuellen Status einer Paketversion unterstützt. Wenn der aktuelle Status nicht mit dem übergebenen Wert übereinstimmt--expected-status, wird der Status dieser Paketversion nicht aktualisiert.

Beispielsweise haben die Versionen 4.0.0 und 4.1.0 des npm-Pakets chalk derzeit den Status. my_repo Published Ein Aufrufupdate-package-versions-status, der einen erwarteten Status von Unlisted angibt, kann beide Paketversionen aufgrund der Statusinkongruenz nicht aktualisieren.

aws codeartifact update-package-versions-status --domain my_domain --domain-owner 111122223333 --repository my_repo --format npm --package chalk --versions 4.1.0 4.0.0 --target-status Archived --expected-status Unlisted

Beispielausgabe:

{ "successfulVersions": {}, "failedVersions": { "4.0.0": { "errorCode": "MISMATCHED_STATUS", "errorMessage": "current status: Published, expected status: Unlisted" }, "4.1.0": { "errorCode": "MISMATCHED_STATUS", "errorMessage": "current status: Published, expected status: Unlisted" } } }

Fehler bei einzelnen Paketversionen

Es gibt mehrere Gründe, warum der Status einer Paketversion beim Aufruf nicht aktualisiert wirdupdate-package-versions-status. Beispielsweise wurde die Revision der Paketversion möglicherweise falsch angegeben, oder der erwartete Status entspricht nicht dem aktuellen Status. In diesen Fällen wird die Version in der API-Antwort in die failedVersions Map aufgenommen. Wenn eine Version ausfällt, werden andere Versionen, die im selben Aufruf von angegeben wurden, update-package-versions-status möglicherweise übersprungen und ihr Status wird nicht aktualisiert. Solche Versionen werden ebenfalls mit einem errorCode von SKIPPED in die failedVersions Map aufgenommen.

In der aktuellen Implementierung von werden alle anderen Versionen übersprungenupdate-package-versions-status, wenn der Status einer oder mehrerer Versionen nicht geändert werden kann. Das heißt, entweder wurden alle Versionen erfolgreich aktualisiert oder es werden keine Versionen aktualisiert. Dieses Verhalten wird im API-Vertrag nicht garantiert. In Zukunft könnten einige Versionen erfolgreich sein, während andere Versionen bei einem einzigen Aufruf von fehlschlagenupdate-package-versions-status.

Der folgende Beispielbefehl beinhaltet einen Fehler bei der Aktualisierung des Versionsstatus, der durch eine Nichtübereinstimmung der Paketversionen verursacht wurde. Dieser Aktualisierungsfehler führt dazu, dass ein weiterer Aufruf zur Versionsstatusaktualisierung übersprungen wird.

aws codeartifact update-package-versions-status --domain my_domain --domain-owner 111122223333 --repository my_repo --format npm --package chalk --version-revisions "4.1.0=25/UjBleHs1DZewk+zozoeqH/R80Rc9gL1P8vbzVMJ=,4.0.0=E3lhBp0RObRTut4pkjV5c1AQGkgSA7Oxtil6hMMzelc=" --versions 4.1.0 4.0.0 --target-status Archived

Beispielausgabe:

{ "successfulVersions": {}, "failedVersions": { "4.0.0": { "errorCode": "SKIPPED", "errorMessage": "version 4.0.0 is skipped" }, "4.1.0": { "errorCode": "MISMATCHED_REVISION", "errorMessage": "current revision: 25/UjBleHs1DZewk+zozoeqH/R80Rc9gL1P8vbzVMJ4=, expected revision: 25/UjBleHs1DZewk+zozoeqH/R80Rc9gL1P8vbzVMJ=" } } }

Löschen von Paketversionen

Der Disposed Paketstatus verhält sich ähnlich wie, mit der AusnahmeArchived, dass die Paketressourcen CodeArtifact dauerhaft gelöscht werden, sodass dem Konto des Domaininhabers die Speicherung der Assets nicht mehr in Rechnung gestellt wird. Weitere Informationen zum Status der einzelnen Paketversionen finden Sie unter. Status der Paketversion Verwenden Sie den dispose-package-versions BefehlDisposed, um den Status einer Paketversion auf zu ändern. Diese Funktion ist unabhängig davonupdate-package-versions-status, dass das Löschen einer Paketversion nicht rückgängig gemacht werden kann. Da die Paketressourcen gelöscht werden, kann der Status der Version nicht wieder in ArchivedUnlisted, oder Published geändert werden. Die einzige Aktion, die an einer Paketversion vorgenommen werden kann, die gelöscht wurde, besteht darin, sie mit dem delete-package-versions Befehl zu löschen.

Für einen dispose-package-versions erfolgreichen Aufruf muss der aufrufende IAM-Prinzipal über die codeartifact:DisposePackageVersions Berechtigung für die Paketressource verfügen.

Das Verhalten des dispose-package-versions Befehls ist ähnlich wieupdate-package-versions-status, einschließlich des Verhaltens der --expected-status Optionen --version-revisions und, die in den Abschnitten Versionsrevision und erwarteter Status beschrieben werden. Der folgende Befehl versucht beispielsweise, eine Paketversion zu löschen, schlägt jedoch fehl, da der erwartete Status nicht übereinstimmt.

aws codeartifact dispose-package-versions --domain my_domain --domain-owner 111122223333 --repository my_repo --format npm --package chalk --versions 4.0.0 --expected-status Unlisted

Beispielausgabe:

{ "successfulVersions": {}, "failedVersions": { "4.0.0": { "errorCode": "MISMATCHED_STATUS", "errorMessage": "current status: Published, expected status: Unlisted" } } }

Wenn derselbe Befehl erneut mit einem --expected-status von ausgeführt wirdPublished, ist die Entsorgung erfolgreich.

aws codeartifact dispose-package-versions --domain my_domain --domain-owner 111122223333 --repository my_repo --format npm --package chalk --versions 4.0.0 --expected-status Published

Beispielausgabe:

{ "successfulVersions": { "4.0.0": { "revision": "E3lhBp0RObRTut4pkjV5c1AQGkgSA7Oxtil6hMMzelc=", "status": "Disposed" } }, "failedVersions": {} }