

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

# Utilizzo CodeArtifact con Cargo
<a name="using-cargo"></a>

Questi argomenti descrivono come usare Cargo, il gestore di pacchetti Rust, con CodeArtifact.

**Nota**  
CodeArtifact supporta solo Cargo 1.74.0 e versioni successive. Cargo 1.74.0 è la prima versione che supporta l'autenticazione su un repository. CodeArtifact 

**Topics**
+ [Configura e usa Cargo](configure-use-cargo.md)
+ [Supporto al comando Cargo](cargo-commands.md)

# Configura e usa Cargo con CodeArtifact
<a name="configure-use-cargo"></a>

Puoi usare Cargo per pubblicare e scaricare casse dai CodeArtifact repository o per recuperare casse da [crates.io](https://crates.io/), il registro delle casse della community di Rust. Questo argomento descrive come configurare Cargo per l'autenticazione e l'utilizzo di un repository. CodeArtifact 

## Configura Cargo con CodeArtifact
<a name="configure-cargo"></a>

Per utilizzare Cargo da cui installare e pubblicare casse AWS CodeArtifact, devi prima configurarle con le informazioni del tuo CodeArtifact repository. Segui i passaggi di una delle seguenti procedure per configurare Cargo con le informazioni e le credenziali dell'endpoint CodeArtifact del repository.

### Configura Cargo utilizzando le istruzioni della console
<a name="configure-cargo-console"></a>

Puoi utilizzare le istruzioni di configurazione nella console per connettere Cargo al tuo CodeArtifact repository. Le istruzioni della console forniscono una configurazione Cargo personalizzata per il tuo CodeArtifact repository. Puoi utilizzare questa configurazione personalizzata per configurare Cargo senza dover trovare e inserire le tue CodeArtifact informazioni.

1. Apri la AWS CodeArtifact console su [https://console.aws.amazon.com/codesuite/codeartifact/home](https://console.aws.amazon.com/codesuite/codeartifact/home).

1. Nel pannello di navigazione, scegli Repository, quindi scegli un **repository** per connetterti a Cargo.

1. Scegli **Visualizza le istruzioni di connessione.**

1. Scegli il tuo sistema operativo.

1. Scegli **Cargo**.

1. Segui le istruzioni generate per connettere Cargo al tuo CodeArtifact repository.

### Configura Cargo manualmente
<a name="configure-cargo-manual"></a>

Se non puoi o non vuoi usare le istruzioni di configurazione della console, puoi utilizzare le seguenti istruzioni per connettere Cargo al tuo CodeArtifact repository manualmente. 

------
#### [ macOS and Linux ]

Per configurare Cargo con CodeArtifact, devi definire il tuo CodeArtifact repository come registro nella configurazione Cargo e fornire le credenziali.
+ Sostituiscilo *my\$1registry* con il nome del tuo registro.
+ *my\$1domain*Sostituiscilo con il tuo nome di CodeArtifact dominio.
+ Sostituiscilo *111122223333* con l'ID dell' AWS account del proprietario del dominio. Se accedi a un repository in un dominio di tua proprietà, non è necessario `--domain-owner` includerlo. Per ulteriori informazioni, consulta [Domini con più account](domain-overview.md#domain-overview-cross-account).
+ *my\$1repo*Sostituiscilo con il nome del tuo CodeArtifact repository.

Copia la configurazione per pubblicare e scaricare i pacchetti Cargo nel tuo repository e salvala nel `~/.cargo/config.toml` file per una configurazione a livello di sistema o `.cargo/config.toml` per una configurazione a livello di progetto:

```
[registries.my_registry]
index = "sparse+https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/cargo/my_repo/"
credential-provider = "cargo:token-from-stdout aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --region us-west-2 --query authorizationToken --output text"

[registry]
default = "my_registry"

[source.crates-io]
replace-with = "my_registry"
```

------
#### [ Windows: Download packages only ]

Per configurare Cargo con CodeArtifact, devi definire il tuo CodeArtifact repository come registro nella configurazione Cargo e fornire le credenziali.
+ Sostituiscilo *my\$1registry* con il nome del tuo registro.
+ *my\$1domain*Sostituiscilo con il tuo nome di CodeArtifact dominio.
+ Sostituiscilo *111122223333* con l'ID dell' AWS account del proprietario del dominio. Se accedi a un repository in un dominio di tua proprietà, non è necessario `--domain-owner` includerlo. Per ulteriori informazioni, consulta [Domini con più account](domain-overview.md#domain-overview-cross-account).
+ *my\$1repo*Sostituiscilo con il nome del tuo CodeArtifact repository.

Copia la configurazione per scaricare solo i pacchetti Cargo dal tuo repository e salvala nel `%USERPROFILE%\.cargo\config.toml` file per una configurazione a livello di sistema o `.cargo\config.toml` per una configurazione a livello di progetto:

```
[registries.my_registry]
index = "sparse+https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/cargo/my_repo/"
credential-provider = "cargo:token-from-stdout aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --region us-west-2 --query authorizationToken --output text"

[registry]
default = "my_registry"

[source.crates-io]
replace-with = "my_registry"
```

------
#### [ Windows: Publish and download packages ]

1. Per configurare Cargo con CodeArtifact, devi definire il tuo CodeArtifact repository come registro nella configurazione Cargo e fornire le credenziali.
   + Sostituiscilo *my\$1registry* con il nome del tuo registro.
   + *my\$1domain*Sostituiscilo con il tuo nome di CodeArtifact dominio.
   + Sostituiscilo *111122223333* con l'ID dell' AWS account del proprietario del dominio. Se accedi a un repository in un dominio di tua proprietà, non è necessario `--domain-owner` includerlo. Per ulteriori informazioni, consulta [Domini con più account](domain-overview.md#domain-overview-cross-account).
   + *my\$1repo*Sostituiscilo con il nome del tuo CodeArtifact repository.

   Copia la configurazione per pubblicare e scaricare i pacchetti Cargo nel tuo repository e salvala nel `%USERPROFILE%\.cargo\config.toml` file per una configurazione a livello di sistema o `.cargo\config.toml` per una configurazione a livello di progetto.

   Si consiglia di utilizzare il provider di credenziali`cargo:token`, che utilizza le credenziali memorizzate nel file. `~/.cargo/credentials.toml` Potresti riscontrare un errore durante `cargo publish` l'utilizzo `cargo:token-from-stdout` perché il client Cargo non taglia correttamente il token di autorizzazione durante. `cargo publish`

   ```
   [registries.my_registry]
   index = "sparse+https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/cargo/my_repo/"
   credential-provider = "cargo:token"
   
   [registry]
   default = "my_registry"
   
   [source.crates-io]
   replace-with = "my_registry"
   ```

1. Per pubblicare i pacchetti Cargo nel tuo repository con Windows, devi utilizzare il CodeArtifact `get-authorization-token` comando e il `login` comando Cargo per recuperare un token di autorizzazione e le tue credenziali.
   + *my\$1registry*Sostituiscilo con il nome del registro come definito in. `[registries.my_registry]`
   + *my\$1domain*Sostituiscilo con il tuo nome di CodeArtifact dominio.
   + Sostituiscilo *111122223333* con l'ID dell' AWS account del proprietario del dominio. Se accedi a un repository in un dominio di tua proprietà, non è necessario `--domain-owner` includerlo. Per ulteriori informazioni, consulta [Domini con più account](domain-overview.md#domain-overview-cross-account).

   ```
   aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --region us-west-2 --query authorizationToken --output text | cargo login --registry my_registry
   ```
**Nota**  
Il token di autorizzazione generato è valido per 12 ore. Dovrai crearne uno nuovo se sono trascorse 12 ore dalla creazione del token.

------

La `[registries.my_registry]` sezione dell'esempio precedente definisce un registro con `my_registry` `index` e fornisce `credential-provider` informazioni.
+ `index`specifica l'URL dell'indice del registro, che è l'endpoint del CodeArtifact repository che termina con un. `/` Il `sparse+` prefisso è obbligatorio per i registri che non sono repository Git.
**Nota**  
Per utilizzare un endpoint dualstack, usa l'endpoint. `codeartifact.region.on.aws`
+ `credential-provider`specifica il fornitore di credenziali per il registro specificato. Se `credential-provider` non è impostato, `registry.global-credential-providers` verranno utilizzati i provider inclusi. Se impostata `credential-provider` su`cargo:token-from-stdout`, il client Cargo recupererà automaticamente il nuovo token di autorizzazione durante la pubblicazione o il download dal CodeArtifact repository, pertanto non è necessario aggiornare manualmente il token di autorizzazione ogni 12 ore.

La `[registry]` sezione definisce il registro predefinito utilizzato.
+ `default`specifica il nome del registro definito in`[registries.my_registry]`, da utilizzare per impostazione predefinita durante la pubblicazione o il download dal CodeArtifact repository.

La `[source.crates-io]` sezione definisce il registro predefinito utilizzato quando non ne viene specificato uno.
+ `replace-with = "my_registry"`sostituisce il registro pubblico, crates.io con il CodeArtifact repository definito in. `[registries.my_registry]` Questa configurazione è consigliata se è necessario richiedere pacchetti dalla connessione esterna come crates.io.

  Per ottenere tutti i vantaggi di CodeArtifact, come il controllo dell'origine dei pacchetti che previene gli attacchi legati alla confusione delle dipendenze, si consiglia di utilizzare la sostituzione del codice sorgente. Con la sostituzione dei sorgenti, invia tramite CodeArtifact proxy tutte le richieste alla connessione esterna e copia il pacchetto dalla connessione esterna al tuo repository. Senza la sostituzione del codice sorgente, il client Cargo recupererà direttamente il pacchetto in base alla configurazione nel `Cargo.toml` file del progetto. Se una dipendenza non è contrassegnata con`registry=my_registry`, il client Cargo la recupererà direttamente da crates.io senza comunicare con il vostro repository. CodeArtifact 
**Nota**  
Se inizi a utilizzare la sostituzione del codice sorgente e poi aggiorni il file di configurazione per non utilizzare la sostituzione del codice sorgente, potresti riscontrare degli errori. Anche lo scenario opposto può causare errori. Pertanto, si consiglia di evitare di modificare la configurazione del progetto.

## Installazione delle casse Cargo
<a name="install-cargo-crates"></a>

[Utilizza le seguenti procedure per installare le casse Cargo da un CodeArtifact repository o da crates.io.](https://crates.io/)

### Installa le casse Cargo da CodeArtifact
<a name="install-cargo-crates-aca"></a>

Puoi utilizzare la CLI Cargo (`cargo`) per installare rapidamente una versione specifica di una cassa Cargo dal tuo repository. CodeArtifact 

**Per installare casse Cargo da un repository con CodeArtifact `cargo`**

1. In caso contrario, segui i passaggi indicati [Configura e usa Cargo con CodeArtifact](#configure-use-cargo) per configurare la `cargo` CLI per utilizzare il tuo CodeArtifact repository con le credenziali appropriate.

1. Usa il seguente comando per installare Cargo crates da: CodeArtifact

   ```
   cargo add my_cargo_package@1.0.0
   ```

   Per ulteriori informazioni, consulta [cargo add](https://doc.rust-lang.org/cargo/commands/cargo-add.html) in *The Cargo Book*.

## Publishing Cargo casse su CodeArtifact
<a name="publish-cargo-crates"></a>

Utilizza la seguente procedura per pubblicare casse Cargo in un CodeArtifact repository utilizzando la CLI`cargo`.

1. In caso contrario, segui i passaggi indicati [Configura e usa Cargo con CodeArtifact](#configure-use-cargo) per configurare la `cargo` CLI per utilizzare il tuo CodeArtifact repository con le credenziali appropriate.

1. Usa il seguente comando per pubblicare le casse Cargo in un repository: CodeArtifact 

   ```
   cargo publish
   ```

   Per ulteriori informazioni, vedete [cargo publish](https://doc.rust-lang.org/cargo/commands/cargo-publish.html) in *The Cargo* Book.

# Supporto al comando Cargo
<a name="cargo-commands"></a>

Le sezioni seguenti riassumono i comandi Cargo supportati dai CodeArtifact repository, oltre a comandi specifici che non sono supportati.

**Contents**
+ [Comandi supportati che richiedono l'accesso al registro](#supported-commands-access-the-registry)
+ [Comandi non supportati](#unsupported-commands)

## Comandi supportati che richiedono l'accesso al registro
<a name="supported-commands-access-the-registry"></a>

Questa sezione elenca i comandi Cargo in cui il client Cargo richiede l'accesso al registro con cui è stato configurato. È stato verificato che questi comandi funzionino correttamente quando vengono richiamati su un CodeArtifact repository.


****  

| Comando | Description | 
| --- | --- | 
|   [costruire](https://doc.rust-lang.org/cargo/commands/cargo-build.html)   |  Crea pacchetti locali e le loro dipendenze.  | 
|   [controlla](https://doc.rust-lang.org/cargo/commands/cargo-check.html)   |  Verifica la presenza di errori nei pacchetti locali e nelle loro dipendenze.  | 
|   [recupera](https://doc.rust-lang.org/cargo/commands/cargo-fetch.html)   |  Recupera le dipendenze di un pacchetto.  | 
|   [pubblicare](https://doc.rust-lang.org/cargo/commands/cargo-publish.html)   |  Pubblica un pacchetto nel registro.  | 

## Comandi non supportati
<a name="unsupported-commands"></a>

Questi comandi Cargo non sono supportati dai CodeArtifact repository.


****  

| Comando | Description | 
| --- | --- | 
|   [proprietario](https://doc.rust-lang.org/cargo/commands/cargo-owner.html)   |  Gestisce i proprietari della cassa nel registro.  | 
|   [cerca](https://doc.rust-lang.org/cargo/commands/cargo-search.html)   |  Cerca i pacchetti nel registro.  | 