

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Configurer et utiliser Cargo avec CodeArtifact
<a name="configure-use-cargo"></a>

Vous pouvez utiliser Cargo pour publier et télécharger des caisses depuis CodeArtifact des référentiels ou pour récupérer des caisses depuis [crates.io](https://crates.io/), le registre des caisses de la communauté Rust. Cette rubrique décrit comment configurer Cargo pour s'authentifier auprès d'un CodeArtifact référentiel et l'utiliser.

## Configurez Cargo avec CodeArtifact
<a name="configure-cargo"></a>

Pour utiliser Cargo pour installer et publier des caisses à partir de celles-ci AWS CodeArtifact, vous devez d'abord les configurer avec les informations de votre CodeArtifact référentiel. Suivez les étapes de l'une des procédures suivantes pour configurer Cargo avec les informations et les informations d'identification du point de terminaison de votre CodeArtifact référentiel.

### Configurer Cargo à l'aide des instructions de la console
<a name="configure-cargo-console"></a>

Vous pouvez utiliser les instructions de configuration de la console pour connecter Cargo à votre CodeArtifact référentiel. Les instructions de la console fournissent une configuration Cargo personnalisée pour votre CodeArtifact référentiel. Vous pouvez utiliser cette configuration personnalisée pour configurer Cargo sans avoir à rechercher et à renseigner vos CodeArtifact informations.

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

1. Dans le volet de navigation, choisissez **Repositories**, puis choisissez un référentiel pour vous connecter à Cargo.

1. Choisissez **Afficher les instructions de connexion**.

1. Choisissez votre système d'exploitation.

1. Choisissez **Cargo**.

1. Suivez les instructions générées pour connecter Cargo à votre CodeArtifact dépôt.

### Configurer Cargo manuellement
<a name="configure-cargo-manual"></a>

Si vous ne pouvez pas ou ne souhaitez pas utiliser les instructions de configuration de la console, vous pouvez utiliser les instructions suivantes pour connecter Cargo à votre CodeArtifact référentiel manuellement. 

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

Pour configurer Cargo avec CodeArtifact, vous devez définir votre CodeArtifact référentiel en tant que registre dans la configuration de Cargo et fournir des informations d'identification.
+ *my\$1registry*Remplacez-le par votre nom de registre.
+ *my\$1domain*Remplacez-le par votre nom de CodeArtifact domaine.
+ Remplacez *111122223333* par le numéro de AWS compte du propriétaire du domaine. Si vous accédez à un référentiel dans un domaine qui vous appartient, vous n'avez pas besoin de l'inclure`--domain-owner`. Pour de plus amples informations, veuillez consulter [Domaines multi-comptes](domain-overview.md#domain-overview-cross-account).
+ *my\$1repo*Remplacez-le par le nom de votre CodeArtifact dépôt.

Copiez la configuration pour publier et télécharger les packages Cargo dans votre référentiel et enregistrez-la dans le `~/.cargo/config.toml` fichier pour une configuration au niveau du système ou `.cargo/config.toml` pour une configuration au niveau du projet :

```
[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 ]

Pour configurer Cargo avec CodeArtifact, vous devez définir votre CodeArtifact référentiel en tant que registre dans la configuration de Cargo et fournir des informations d'identification.
+ *my\$1registry*Remplacez-le par votre nom de registre.
+ *my\$1domain*Remplacez-le par votre nom de CodeArtifact domaine.
+ Remplacez *111122223333* par le numéro de AWS compte du propriétaire du domaine. Si vous accédez à un référentiel dans un domaine qui vous appartient, vous n'avez pas besoin de l'inclure`--domain-owner`. Pour de plus amples informations, veuillez consulter [Domaines multi-comptes](domain-overview.md#domain-overview-cross-account).
+ *my\$1repo*Remplacez-le par le nom de votre CodeArtifact dépôt.

Copiez la configuration pour télécharger uniquement les packages Cargo depuis votre référentiel et enregistrez-la dans le `%USERPROFILE%\.cargo\config.toml` fichier pour une configuration au niveau du système ou `.cargo\config.toml` pour une configuration au niveau du projet :

```
[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. Pour configurer Cargo avec CodeArtifact, vous devez définir votre CodeArtifact référentiel en tant que registre dans la configuration de Cargo et fournir des informations d'identification.
   + *my\$1registry*Remplacez-le par votre nom de registre.
   + *my\$1domain*Remplacez-le par votre nom de CodeArtifact domaine.
   + Remplacez *111122223333* par le numéro de AWS compte du propriétaire du domaine. Si vous accédez à un référentiel dans un domaine qui vous appartient, vous n'avez pas besoin de l'inclure`--domain-owner`. Pour de plus amples informations, veuillez consulter [Domaines multi-comptes](domain-overview.md#domain-overview-cross-account).
   + *my\$1repo*Remplacez-le par le nom de votre CodeArtifact dépôt.

   Copiez la configuration pour publier et télécharger les packages Cargo dans votre référentiel et enregistrez-la dans le `%USERPROFILE%\.cargo\config.toml` fichier pour une configuration au niveau du système ou `.cargo\config.toml` pour une configuration au niveau du projet.

   Il est recommandé d'utiliser le fournisseur d'informations d'identification`cargo:token`, qui utilise les informations d'identification stockées dans votre `~/.cargo/credentials.toml` fichier. Vous pouvez rencontrer une erreur lors `cargo publish` de l'utilisation, `cargo:token-from-stdout` car le client Cargo ne découpe pas correctement le jeton d'autorisation pendant cette utilisation`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. Pour publier des packages Cargo dans votre référentiel avec Windows, vous devez utiliser la CodeArtifact `get-authorization-token` commande et la `login` commande Cargo pour récupérer un jeton d'autorisation et vos informations d'identification.
   + *my\$1registry*Remplacez-le par votre nom de registre tel que défini dans`[registries.my_registry]`.
   + *my\$1domain*Remplacez-le par votre nom de CodeArtifact domaine.
   + Remplacez *111122223333* par le numéro de AWS compte du propriétaire du domaine. Si vous accédez à un référentiel dans un domaine qui vous appartient, vous n'avez pas besoin de l'inclure`--domain-owner`. Pour de plus amples informations, veuillez consulter [Domaines multi-comptes](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
   ```
**Note**  
Le jeton d'autorisation généré est valide pendant 12 heures. Vous devrez en créer un nouveau si 12 heures se sont écoulées depuis la création du jeton.

------

La `[registries.my_registry]` section de l'exemple précédent définit un registre contenant `my_registry` `index` et fournit des `credential-provider` informations.
+ `index`spécifie l'URL de l'index de votre registre, qui est le point de terminaison du CodeArtifact référentiel qui se termine par un`/`. Le `sparse+` préfixe est obligatoire pour les registres qui ne sont pas des référentiels Git.
**Note**  
Pour utiliser un point de terminaison à double pile, utilisez le `codeartifact.region.on.aws` point de terminaison.
+ `credential-provider`spécifie le fournisseur d'informations d'identification pour le registre donné. Si `credential-provider` ce n'est pas le cas, les fournisseurs `registry.global-credential-providers` inclus seront utilisés. En le `credential-provider` réglant sur`cargo:token-from-stdout`, le client Cargo récupérera automatiquement le nouveau jeton d'autorisation lors de la publication ou du téléchargement depuis votre CodeArtifact référentiel. Vous n'avez donc pas besoin d'actualiser manuellement le jeton d'autorisation toutes les 12 heures.

La `[registry]` section définit le registre par défaut utilisé.
+ `default`indique le nom du registre défini dans`[registries.my_registry]`, à utiliser par défaut lors de la publication ou du téléchargement depuis votre CodeArtifact référentiel.

La `[source.crates-io]` section définit le registre par défaut utilisé lorsqu'aucun registre n'est spécifié.
+ `replace-with = "my_registry"`remplace le registre public crates.io par votre CodeArtifact dépôt défini dans. `[registries.my_registry]` Cette configuration est recommandée si vous devez demander des packages via une connexion externe telle que crates.io.

  Pour bénéficier de tous les avantages CodeArtifact, tels que le contrôle de l'origine des packages qui empêche les attaques de confusion de dépendances, il est recommandé d'utiliser le remplacement de source. Avec le remplacement de la source, CodeArtifact transmet toutes les demandes par proxy à la connexion externe et copie le package depuis la connexion externe vers votre référentiel. Sans le remplacement de la source, le client Cargo récupérera directement le package en fonction de la configuration de votre `Cargo.toml` fichier dans votre projet. Si une dépendance n'est pas marquée par un`registry=my_registry`, le client Cargo la récupérera directement depuis crates.io sans communiquer avec votre CodeArtifact dépôt.
**Note**  
Si vous commencez à utiliser le remplacement de source, puis que vous mettez à jour votre fichier de configuration pour ne pas utiliser le remplacement de source, vous risquez de rencontrer des erreurs. Le scénario inverse peut également entraîner des erreurs. Il est donc recommandé d'éviter de modifier la configuration de votre projet.

## Installation de caisses de chargement
<a name="install-cargo-crates"></a>

Utilisez les procédures suivantes pour installer les caisses Cargo depuis un CodeArtifact dépôt ou depuis [crates.io.](https://crates.io/)

### Installez les caisses Cargo à partir de CodeArtifact
<a name="install-cargo-crates-aca"></a>

Vous pouvez utiliser la CLI Cargo (`cargo`) pour installer rapidement une version spécifique d'une caisse Cargo à partir de votre CodeArtifact référentiel.

**Pour installer des caisses Cargo à partir d'un CodeArtifact référentiel avec `cargo`**

1. Si ce n'est pas le cas, suivez les étapes décrites [Configurer et utiliser Cargo avec CodeArtifact](#configure-use-cargo) pour configurer la `cargo` CLI afin d'utiliser votre CodeArtifact référentiel avec les informations d'identification appropriées.

1. Utilisez la commande suivante pour installer les caisses Cargo à partir de CodeArtifact :

   ```
   cargo add my_cargo_package@1.0.0
   ```

   Pour plus d'informations, voir [Ajouter une cargaison](https://doc.rust-lang.org/cargo/commands/cargo-add.html) dans *The Cargo Book*.

## Publication de caisses Cargo sur CodeArtifact
<a name="publish-cargo-crates"></a>

Utilisez la procédure suivante pour publier des caisses Cargo dans un CodeArtifact référentiel à l'aide de la `cargo` CLI.

1. Si ce n'est pas le cas, suivez les étapes décrites [Configurer et utiliser Cargo avec CodeArtifact](#configure-use-cargo) pour configurer la `cargo` CLI afin d'utiliser votre CodeArtifact référentiel avec les informations d'identification appropriées.

1. Utilisez la commande suivante pour publier les caisses Cargo dans un CodeArtifact référentiel :

   ```
   cargo publish
   ```

   Pour plus d'informations, consultez la section [Cargo Publish](https://doc.rust-lang.org/cargo/commands/cargo-publish.html) dans *The Cargo Book*.