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, erscheint aber nicht in den Paketversionslisten, die auf Befehle wie zurückgegeben werdennpm view. Das UpdatePackageVersionsStatus APIermöglicht das Festlegen des Paketversionsstatus mehrerer Versionen desselben Pakets in einem einzigen API Aufruf. 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 erforderlichen IAM Berechtigungen für die Verwendung des Befehls finden Sie unterErforderliche IAM Berechtigungen, um den Status einer Paketversion zu aktualisieren. Im folgenden Beispiel wird der Status von Version 4.1.0 des npm-Pakets chalk auf gesetzt. 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 auch für andere Formate. Mehrere Versionen können mit einem einzigen Befehl in denselben Zielstatus versetzt 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 einmal veröffentlichte Paketversion nicht wieder in den Unfinished Status zurückversetzt werden kann. Daher ist dieser Status als Wert für den --target-status Parameter nicht zulässig. Um die Paketversion in den Disposed Status zu verschieben, 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, müssen Sie über die codeartifact:UpdatePackageVersionsStatus entsprechende Berechtigung für die Paketressource verfügen. Das bedeutet, dass Sie die Berechtigung update-package-versions-status zum Aufrufen pro Paket erteilen können. Zum Beispiel eine IAM Richtlinie, die die Erlaubnis erteilt, das update-package-versions-status npm-Paket aufzurufen chalk würde eine Aussage wie die folgende beinhalten.

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

Der Status eines NPM-Pakets mit Gültigkeitsbereich wird aktualisiert

Verwenden Sie den Parameter, um den Paketversionsstatus einer npm-Paketversion mit einem Bereich zu aktualisieren. --namespace Verwenden Sie beispielsweise den folgenden Befehl, um die Liste der Version 8.0.0 von @nestjs/core aufzuheben.

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

Status für ein Maven-Paket 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 Paketversionsrevision

Eine Paketversionsrevision ist eine Zeichenfolge, die einen bestimmten Satz von Elementen 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 Revisionspaare der Paketversionen 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 den Optionen eine kommagetrennte Liste von Versions- und Versionsrevisionspaaren. --version-revisions Der folgende Beispielbefehl definiert zwei verschiedene Revisionspaare für Paketversion und Paketversion.

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 identisch sein, an die übergeben wurde--versions. Wenn eine Revision falsch angegeben wurde, wird der Status dieser Version nicht aktualisiert.

Verwenden Sie den erwarteten Statusparameter

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.

Zum Beispiel in my_repo, haben die Versionen 4.0.0 und 4.1.0 des npm-Pakets chalk derzeit den Status. Published Bei einem Aufrufupdate-package-versions-status, der den erwarteten Status von angibt, können beide Paketversionen nicht aktualisiert Unlisted werden, da der Status nicht übereinstimmt.

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 Aufrufen 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 fehlschlägt, 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 auch mit dem Wert 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 wurden keine Versionen aktualisiert. Dieses Verhalten ist im API Vertrag nicht garantiert. In future könnten einige Versionen erfolgreich sein, während andere Versionen bei einem einzigen Aufruf fehlschlagenupdate-package-versions-status.

Der folgende Beispielbefehl beinhaltet einen Fehler bei der Aktualisierung des Versionsstatus, der auf eine nicht übereinstimmende Paketversion zurückzuführen ist. Dieser Aktualisierungsfehler führt dazu, dass ein weiterer Aufruf zur Aktualisierung des Versionsstatus ü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=" } } }

Entsorgung von Paketversionen

Der Disposed Paketstatus verhält sich ähnlich wieArchived, mit dem Unterschied, dass die Paket-Assets dauerhaft gelöscht werden, CodeArtifact sodass dem Konto des Domaininhabers keine Kosten mehr für den Asset-Speicher in Rechnung gestellt werden. Weitere Informationen zum Status der einzelnen Paketversionen finden Sie unterStatus der Paketversion. Verwenden Sie den dispose-package-versions BefehlDisposed, um den Status einer Paketversion auf zu 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 auf ArchivedUnlisted, oder Published zurückgesetzt werden. Die einzige Aktion, die für eine entsorgte Paketversion ausgeführt werden kann, besteht darin, sie mithilfe des delete-package-versions Befehls zu löschen.

Für einen dispose-package-versions erfolgreichen Aufruf muss der aufrufende IAM Principal über die codeartifact:DisposePackageVersions entsprechende 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 sind. Der folgende Befehl versucht beispielsweise, eine Paketversion zu löschen, schlägt jedoch fehl, weil 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 of ausgeführt wirdPublished, ist die Löschung 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": {} }