Configurer et utiliser Cargo avec CodeArtifact - CodeArtifact

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

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

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

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 à l'adresse https://console.aws.amazon.com/codesuite/codeartifact/home.

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

  3. Choisissez Afficher les instructions de connexion.

  4. Choisissez votre système d'exploitation.

  5. Choisissez Cargo.

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

Configurer Cargo manuellement

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.

  • Remplacez my_registry par votre nom de registre.

  • Remplacez my_domain par votre nom de CodeArtifact domaine.

  • Remplacez 111122223333 par l'ID 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 plus d’informations, consultez Domaines multi-comptes.

  • Remplacez my_repo 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.

  • Remplacez my_registry par votre nom de registre.

  • Remplacez my_domain par votre nom de CodeArtifact domaine.

  • Remplacez 111122223333 par l'ID 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 plus d’informations, consultez Domaines multi-comptes.

  • Remplacez my_repo 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.

    • Remplacez my_registry par votre nom de registre.

    • Remplacez my_domain par votre nom de CodeArtifact domaine.

    • Remplacez 111122223333 par l'ID 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 plus d’informations, consultez Domaines multi-comptes.

    • Remplacez my_repo 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'identificationcargo: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 utilisationcargo 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"
  2. 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.

    • Remplacez my_registry par le nom de votre registre tel que défini dans. [registries.my_registry]

    • Remplacez my_domain par votre nom de CodeArtifact domaine.

    • Remplacez 111122223333 par l'ID 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 plus d’informations, consultez Domaines multi-comptes.

    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.

  • indexspé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.

  • credential-providerspé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 surcargo: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é.

  • defaultindique 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 unregistry=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

Utilisez les procédures suivantes pour installer les caisses Cargo depuis un CodeArtifact dépôt ou depuis crates.io.

Installez les caisses Cargo à partir de CodeArtifact

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 pour configurer la cargo CLI afin d'utiliser votre CodeArtifact référentiel avec les informations d'identification appropriées.

  2. 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 dans The Cargo Book.

Publication de caisses Cargo sur CodeArtifact

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 pour configurer la cargo CLI afin d'utiliser votre CodeArtifact référentiel avec les informations d'identification appropriées.

  2. 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 dans The Cargo Book.