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 Published
Unlisted
, 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-owner111122223333
--repositorymy_repo
--formatnpm
--packagechalk
--versions4.1.0
--target-statusArchived
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-owner111122223333
--repositorymy_repo
--formatnpm
--packagechalk
--versions4.1.0 4.1.1
--target-statusArchived
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-owner111122223333
--repositorymy_repo
--formatnpm
--namespacenestjs
--packagecore
--versions8.0.0
--target-statusUnlisted
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-owner111122223333
--repositorymy_repo
--formatmaven
--namespaceorg.apache.logging.log4j
--packagelog4j
--versions2.13.1
--target-statusArchived
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-owner111122223333
--repositorymy_repo
--formatnpm
--packagechalk
--version-revisions "4.1.0=25/UjBleHs1DZewk+zozoeqH/R80Rc9gL1P8bzVMJ4=
" --versions4.1.0
--target-statusArchived
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-owner111122223333
--repositorymy_repo
--formatnpm
--packagechalk
--version-revisions "4.1.0=25/UjBleHs1DZewk+zozoeqH/R80Rc9gL1P8vbzVMJ4=
,4.0.0=E3lhBp0RObRTut4pkjV5c1AQGkgSA7Oxtil6hMMzelc=
" --versions4.1.0 4.0.0
--target-statusPublished
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-owner111122223333
--repositorymy_repo
--formatnpm
--packagechalk
--versions4.1.0 4.0.0
--target-statusArchived
--expected-statusUnlisted
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-owner111122223333
--repositorymy_repo
--formatnpm
--packagechalk
--version-revisions "4.1.0=25/UjBleHs1DZewk+zozoeqH/R80Rc9gL1P8vbzVMJ=
,4.0.0=E3lhBp0RObRTut4pkjV5c1AQGkgSA7Oxtil6hMMzelc=
" --versions4.1.0 4.0.0
--target-statusArchived
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 Archived
Unlisted
, 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-owner111122223333
--repositorymy_repo
--formatnpm
--packagechalk
--versions4.0.0
--expected-statusUnlisted
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-owner111122223333
--repositorymy_repo
--formatnpm
--packagechalk
--versions4.0.0
--expected-statusPublished
Beispielausgabe:
{ "successfulVersions": { "4.0.0": { "revision": "E3lhBp0RObRTut4pkjV5c1AQGkgSA7Oxtil6hMMzelc=", "status": "Disposed" } }, "failedVersions": {} }