Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Aggiorna lo stato della versione del pacchetto
Ogni versione del pacchetto in CodeArtifact ha uno stato che descrive lo stato corrente e la disponibilità della versione del pacchetto. È possibile modificare lo stato della versione del pacchetto utilizzando AWS CLI sia la console che la console.
Nota
Per ulteriori informazioni sullo stato della versione del pacchetto, incluso un elenco degli stati disponibili, vedereStato della versione del pacchetto.
Aggiornamento dello stato della versione del pacchetto
L'impostazione dello stato di una versione del pacchetto consente di controllare come una versione del pacchetto può essere utilizzata senza eliminarla completamente dal repository. Ad esempio, quando la versione di un pacchetto ha lo stato diUnlisted
, può comunque essere scaricata normalmente, ma non comparirà negli elenchi delle versioni del pacchetto restituiti a comandi come. npm view
UpdatePackageVersionsStatus APIConsente di impostare lo stato della versione del pacchetto di più versioni dello stesso pacchetto in una singola API chiamata. Per una descrizione dei diversi stati, vederePanoramica dei pacchetti.
Utilizzate il update-package-versions-status
comando per modificare lo stato di una versione del pacchetto in Published
Unlisted
, oArchived
. Per visualizzare le IAM autorizzazioni necessarie per utilizzare il comando, vedereIAMAutorizzazioni necessarie per aggiornare lo stato della versione di un pacchetto. L'esempio seguente imposta lo stato della versione 4.1.0 del pacchetto npm su. chalk
Archived
aws codeartifact update-package-versions-status --domain
my_domain
--domain-owner111122223333
--repositorymy_repo
--formatnpm
--packagechalk
--versions4.1.0
--target-statusArchived
Output di esempio:
{ "successfulVersions": { "4.1.0": { "revision": "+Oz8skWbwY3k8M6SrNIqNj6bVH/ax+CxvkJx+No5j8I=", "status": "Archived" } }, "failedVersions": {} }
Questo esempio utilizza un pacchetto npm, ma il comando funziona in modo identico per altri formati. È possibile spostare più versioni allo stesso stato di destinazione utilizzando un singolo comando, vedi l'esempio seguente.
aws codeartifact update-package-versions-status --domain
my_domain
--domain-owner111122223333
--repositorymy_repo
--formatnpm
--packagechalk
--versions4.1.0 4.1.1
--target-statusArchived
Output di esempio:
{ "successfulVersions": { "4.1.0": { "revision": "25/UjBleHs1DZewk+zozoeqH/R80Rc9gL1P8vbzVMJ4=", "status": "Archived" }, "4.1.1": { "revision": "+Oz8skWbwY3k8M6SrNIqNj6bVH/ax+CxvkJx+No5j8I=", "status": "Archived" } }, "failedVersions": {} }
Nota che una volta pubblicata, una versione del pacchetto non può essere riportata allo Unfinished
stato, quindi questo stato non è consentito come valore per il --target-status
parametro. Per spostare la versione del pacchetto nello Disposed
stato, utilizzate invece il dispose-package-versions
comando come descritto di seguito.
IAMAutorizzazioni necessarie per aggiornare lo stato della versione di un pacchetto
update-package-versions-status
Per richiedere un pacchetto, è necessario disporre dell'codeartifact:UpdatePackageVersionsStatus
autorizzazione sulla risorsa del pacchetto. Ciò significa che è possibile concedere l'autorizzazione alla chiamata update-package-versions-status
in base al pacchetto. Ad esempio, una IAM politica che concede il permesso di chiamare il pacchetto update-package-versions-status
npm chalk
includerebbe una dichiarazione come la seguente.
{ "Action": [ "codeartifact:UpdatePackageVersionsStatus" ], "Effect": "Allow", "Resource": "arn:aws:codeartifact:
us-east-1
:111122223333
:package/my_domain
/my_repo
/npm//chalk" }
Aggiornamento dello stato per un pacchetto npm con ambito
Per aggiornare lo stato della versione del pacchetto di una versione del pacchetto npm con un ambito, usa il parametro. --namespace
Ad esempio, per rimuovere la versione 8.0.0 di@nestjs/core
, utilizzate il comando seguente.
aws codeartifact update-package-versions-status --domain
my_domain
--domain-owner111122223333
--repositorymy_repo
--formatnpm
--namespacenestjs
--packagecore
--versions8.0.0
--target-statusUnlisted
Aggiornamento dello stato di un pacchetto Maven
I pacchetti Maven hanno sempre un ID di gruppo, che viene chiamato namespace in. CodeArtifact Usa il --namespace
parametro per specificare l'ID del gruppo Maven durante la chiamata. update-package-versions-status
Ad esempio, per archiviare la versione 2.13.1 del pacchetto org.apache.logging.log4j:log4j
Maven, utilizzare il comando seguente.
aws codeartifact update-package-versions-status --domain
my_domain
--domain-owner111122223333
--repositorymy_repo
--formatmaven
--namespaceorg.apache.logging.log4j
--packagelog4j
--versions2.13.1
--target-statusArchived
Specificare una revisione della versione del pacchetto
Una revisione della versione del pacchetto è una stringa che specifica un insieme specifico di risorse e metadati per una versione del pacchetto. È possibile specificare una revisione della versione del pacchetto per aggiornare lo stato delle versioni del pacchetto che si trovano in uno stato specifico. Per specificare una revisione della versione del pacchetto, utilizzate il --version-revisions
parametro per passare una o più versioni del pacchetto separate da virgole e le coppie di revisione delle versioni del pacchetto. Lo stato di una versione del pacchetto verrà aggiornato solo se la revisione corrente della versione del pacchetto corrisponde al valore specificato.
Nota
Il —-versions
parametro deve essere definito anche quando si utilizza il --version-revisions
parametro.
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
Per aggiornare più versioni con un solo comando, passate un elenco separato da virgole di coppie di versioni e revisioni di versione alle opzioni. --version-revisions
Il comando di esempio seguente definisce due diverse coppie di versione del pacchetto e di revisione della versione del pacchetto.
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
Output di esempio:
{ "successfulVersions": { "4.0.0": { "revision": "E3lhBp0RObRTut4pkjV5c1AQGkgSA7Oxtil6hMMzelc=", "status": "Published" }, "4.1.0": { "revision": "25/UjBleHs1DZewk+zozoeqH/R80Rc9gL1P8vbzVMJ4=", "status": "Published" } }, "failedVersions": {} }
Quando si aggiornano più versioni del pacchetto, le versioni passate --version-revisions
devono essere le stesse a --versions
cui è stato passato. Se una revisione viene specificata in modo errato, lo stato di quella versione non verrà aggiornato.
Utilizzo del parametro di stato previsto
Il update-package-versions-status
comando fornisce il --expected-status
parametro che supporta la specificazione dello stato corrente previsto di una versione del pacchetto. Se lo stato corrente non corrisponde al valore passato--expected-status
, lo stato di quella versione del pacchetto non verrà aggiornato.
Ad esempio, in my_repo
, le versioni 4.0.0 e 4.1.0 del pacchetto npm hanno chalk
attualmente lo stato di. Published
Una chiamata a update-package-versions-status
ciò che specifica uno stato previsto di non Unlisted
riuscirà ad aggiornare entrambe le versioni del pacchetto a causa della mancata corrispondenza dello stato.
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
Output di esempio:
{ "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" } } }
Errori con le singole versioni del pacchetto
Esistono diversi motivi per cui lo stato di una versione del pacchetto non viene aggiornato durante la chiamataupdate-package-versions-status
. Ad esempio, la revisione della versione del pacchetto potrebbe essere stata specificata in modo errato o lo stato previsto non corrisponde allo stato corrente. In questi casi, la versione verrà inclusa nella failedVersions
mappa della risposta. API Se una versione fallisce, è possibile che le altre versioni specificate nella stessa chiamata a update-package-versions-status
vengano ignorate e il loro stato non sia aggiornato. Tali versioni verranno incluse anche nella failedVersions
mappa con un errorCode
diSKIPPED
.
Nell'attuale implementazione diupdate-package-versions-status
, se non è possibile modificare lo stato di una o più versioni, tutte le altre versioni verranno ignorate. Cioè, tutte le versioni vengono aggiornate correttamente o nessuna versione viene aggiornata. Questo comportamento non è garantito nel API contratto; in futuro, alcune versioni potrebbero avere successo mentre altre versioni falliranno in una singola chiamata aupdate-package-versions-status
.
Il comando di esempio seguente include un errore di aggiornamento dello stato della versione causato da una mancata corrispondenza della revisione della versione del pacchetto. Questo errore di aggiornamento fa sì che un'altra chiamata di aggiornamento dello stato della versione venga ignorata.
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
Output di esempio:
{ "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=" } } }
Eliminazione delle versioni dei pacchetti
Lo stato del Disposed
pacchetto ha un comportamento simile aArchived
, tranne per il fatto che gli asset del pacchetto verranno eliminati definitivamente, CodeArtifact in modo che all'account del proprietario del dominio non venga più addebitato lo spazio di archiviazione degli asset. Per ulteriori informazioni sullo stato di ogni versione del pacchetto, consultaStato della versione del pacchetto. Per modificare lo stato di una versione del pacchetto inDisposed
, usa il dispose-package-versions
comando. Questa funzionalità è distinta dal update-package-versions-status
fatto che lo smaltimento di una versione del pacchetto non è reversibile. Poiché le risorse del pacchetto verranno eliminate, lo stato della versione non può essere ripristinato in Archived
Unlisted
, o. Published
L'unica azione che può essere eseguita su una versione del pacchetto che è stata eliminata è eliminarla utilizzando il delete-package-versions
comando.
Per chiamare dispose-package-versions
correttamente, il IAM principale chiamante deve disporre dell'codeartifact:DisposePackageVersions
autorizzazione sulla risorsa del pacchetto.
Il comportamento del dispose-package-versions
comando è simile aupdate-package-versions-status
, incluso il comportamento delle --expected-status
opzioni --version-revisions
e descritte nelle sezioni sulla revisione della versione e sullo stato previsto. Ad esempio, il comando seguente tenta di eliminare una versione del pacchetto ma fallisce a causa di uno stato previsto non corrispondente.
aws codeartifact dispose-package-versions —domain
my_domain
--domain-owner111122223333
--repositorymy_repo
--formatnpm
--packagechalk
--versions4.0.0
--expected-statusUnlisted
Output di esempio:
{ "successfulVersions": {}, "failedVersions": { "4.0.0": { "errorCode": "MISMATCHED_STATUS", "errorMessage": "current status: Published, expected status: Unlisted" } } }
Se lo stesso comando viene eseguito nuovamente con un --expected-status
ofPublished
, l'eliminazione avrà esito positivo.
aws codeartifact dispose-package-versions —domain
my_domain
--domain-owner111122223333
--repositorymy_repo
--formatnpm
--packagechalk
--versions4.0.0
--expected-statusPublished
Output di esempio:
{ "successfulVersions": { "4.0.0": { "revision": "E3lhBp0RObRTut4pkjV5c1AQGkgSA7Oxtil6hMMzelc=", "status": "Disposed" } }, "failedVersions": {} }