

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
<a name="update-package-version-status"></a>

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, vedere[Stato della versione del pacchetto](packages-overview.md#package-version-status). 

## Aggiornamento dello stato della versione del pacchetto
<a name="updating-pv-status"></a>

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 di`Unlisted`, può comunque essere scaricata normalmente, ma non verrà visualizzata negli elenchi delle versioni del pacchetto restituiti a comandi come. `npm view` L'[UpdatePackageVersionsStatus API](https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_UpdatePackageVersionsStatus.html) 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, vedere[Panoramica dei pacchetti](packages-overview.md).

Utilizzate il `update-package-versions-status` comando per modificare lo stato di una versione del pacchetto in `Published``Unlisted`, o`Archived`. Per visualizzare le autorizzazioni IAM necessarie per utilizzare il comando, consulta[Autorizzazioni IAM richieste per aggiornare lo stato della versione di un pacchetto](#update-package-version-status-iam). 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
<a name="update-package-version-status-iam"></a>

`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 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 di un pacchetto npm con ambito
<a name="update-package-version-status-scoped-npm"></a>

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
<a name="update-package-version-status-maven"></a>

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
<a name="update-status-specify-package-version-revision"></a>

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
<a name="using-expected-status"></a>

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*my\$1repo*, nelle versioni 4.0.0 e 4.1.0 del pacchetto npm `chalk` attualmente hanno uno stato di. `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
<a name="update-package-version-status-errors"></a>

Esistono diversi motivi per cui lo stato di una versione del pacchetto non viene aggiornato durante la chiamata`update-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` di`SKIPPED`.

Nell'attuale implementazione di`update-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 a`update-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
<a name="dispose-package-versions"></a>

Lo stato del `Disposed` pacchetto ha un comportamento simile a`Archived`, 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, consulta[Stato della versione del pacchetto](packages-overview.md#package-version-status). Per modificare lo stato di una versione del pacchetto in`Disposed`, 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 principale IAM chiamante deve disporre dell'`codeartifact:DisposePackageVersions`autorizzazione sulla risorsa del pacchetto.

Il comportamento del `dispose-package-versions` comando è simile`update-package-versions-status`, incluso il comportamento delle `--expected-status` opzioni `--version-revisions ` e descritte nelle sezioni sulla [revisione della versione](#update-status-specify-package-version-revision) e [sullo stato previsto](#using-expected-status). 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` of`Published`, 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": {}
}
```