Aggiorna lo stato della versione del pacchetto - CodeArtifact

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 verrà visualizzata negli elenchi delle versioni del pacchetto restituiti a comandi come. npm view L'UpdatePackageVersionsStatus API consente di impostare lo stato della versione del pacchetto di più versioni dello stesso pacchetto in un'unica chiamata API. 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 PublishedUnlisted, oArchived. Per visualizzare le autorizzazioni IAM necessarie per utilizzare il comando, consultaAutorizzazioni IAM richieste 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-owner 111122223333 --repository my_repo --format npm --package chalk --versions 4.1.0 --target-status Archived

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-owner 111122223333 --repository my_repo --format npm --package chalk --versions 4.1.0 4.1.1 --target-status Archived

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.

Autorizzazioni IAM richieste per aggiornare lo stato della versione di un pacchetto

update-package-versions-statusPer richiedere un pacchetto, è necessario disporre dell'codeartifact:UpdatePackageVersionsStatusautorizzazione sulla risorsa del pacchetto. Ciò significa che è possibile concedere l'autorizzazione alla chiamata update-package-versions-status in base al pacchetto. Ad esempio, una policy IAM che conceda il permesso di chiamare update-package-versions-status il pacchetto npm chalk includerebbe un'istruzione 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-owner 111122223333 --repository my_repo --format npm --namespace nestjs --package core --versions 8.0.0 --target-status Unlisted

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-owner 111122223333 --repository my_repo --format maven --namespace org.apache.logging.log4j --package log4j --versions 2.13.1 --target-status Archived

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-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

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-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

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 attualmente uno stato di. chalk Published Una chiamata a update-package-versions-status ciò 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-owner 111122223333 --repository my_repo --format npm --package chalk --versions 4.1.0 4.0.0 --target-status Archived --expected-status Unlisted

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 nella risposta dell'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 contratto API; 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 versione 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-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

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 ArchivedUnlisted, 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 principale IAM chiamante deve disporre dell'codeartifact:DisposePackageVersionsautorizzazione sulla risorsa del pacchetto.

Il comportamento del dispose-package-versions comando è simileupdate-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-owner 111122223333 --repository my_repo --format npm --package chalk --versions 4.0.0 --expected-status Unlisted

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-owner 111122223333 --repository my_repo --format npm --package chalk --versions 4.0.0 --expected-status Published

Output di esempio:

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