

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.

# Utilisation CodeArtifact avec Ruby
<a name="using-ruby"></a>

Ces rubriques décrivent comment utiliser les outils RubyGems et Bundler CodeArtifact pour installer et publier des gemmes Ruby.

**Note**  
CodeArtifact recommande Ruby 3.3 ou version ultérieure et ne fonctionne pas avec Ruby 2.6 ou version antérieure.

**Topics**
+ [Configuration et utilisation d'un RubyGems Bundler](configure-use-rubygems-bundler.md)
+ [

# RubyGems support aux commandes
](ruby-command-support.md)
+ [Compatibilité avec le bundler](bundler-compatibility.md)

# Configurer RubyGems et utiliser un Bundler avec CodeArtifact
<a name="configure-use-rubygems-bundler"></a>

Après avoir créé un dépôt dans CodeArtifact, vous pouvez utiliser RubyGems (`gem`) et Bundler (`bundle`) pour installer et publier des gemmes. Cette rubrique décrit comment configurer les gestionnaires de packages pour s'authentifier auprès d'un CodeArtifact référentiel et l'utiliser.

## Configure RubyGems (`gem`) et Bundler (`bundle`) avec CodeArtifact
<a name="configure-ruby-gem"></a>

Pour utiliser RubyGems (`gem`) ou Bundler (`bundle`) pour publier des gemmes ou en consommer AWS CodeArtifact, vous devez d'abord les configurer avec les informations de votre CodeArtifact référentiel, y compris les informations d'identification pour y accéder. Suivez les étapes de l'une des procédures suivantes pour configurer les outils `gem` et `bundle` CLI avec les informations et les informations d'identification du point de terminaison de votre CodeArtifact référentiel.

### Configuration RubyGems et regroupement à l'aide des instructions de la console
<a name="configure-ruby-gem-console"></a>

Vous pouvez utiliser les instructions de configuration de la console pour connecter vos gestionnaires de packages Ruby à votre CodeArtifact référentiel. Les instructions de la console fournissent des commandes personnalisées que vous pouvez exécuter pour configurer vos gestionnaires de packages sans avoir à rechercher et à saisir 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 le référentiel que vous souhaitez utiliser pour installer ou diffuser des gemmes Ruby.

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

1. Choisissez votre système d'exploitation.

1. Choisissez le client du gestionnaire de packages Ruby que vous souhaitez configurer avec votre CodeArtifact dépôt.

1. Suivez les instructions générées pour configurer le client du gestionnaire de packages afin d'installer des gemmes Ruby ou de publier des gemmes Ruby dans le référentiel.

### Configuration RubyGems et regroupement manuels
<a name="configure-ruby-gem-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 vous connecter manuellement à vos gestionnaires de packages Ruby à votre CodeArtifact référentiel. 

1. Dans une ligne de commande, utilisez la commande suivante pour récupérer un jeton CodeArtifact d'autorisation et le stocker dans une variable d'environnement.
   + *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).

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

   ```
   export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text`
   ```

------
#### [ Windows ]
   + Windows (en utilisant l'interface de commande par défaut) :

     ```
     for /f %i in ('aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text') do set CODEARTIFACT_AUTH_TOKEN=%i
     ```
   + Fenêtres PowerShell :

     ```
     $env:CODEARTIFACT_AUTH_TOKEN = aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text
     ```

------

1. Pour publier des gemmes Ruby dans votre dépôt, utilisez la commande suivante pour récupérer le point de terminaison de votre CodeArtifact dépôt et le stocker dans la variable d'`RUBYGEMS_HOST`environnement. La `gem` CLI utilise cette variable d'environnement pour déterminer où les gemmes sont publiées.
**Note**  
Au lieu d'utiliser la variable d'`RUBYGEMS_HOST`environnement, vous pouvez également fournir `--host` cette option au point de terminaison du référentiel lorsque vous utilisez la `gem push` commande.
   + *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.

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

   ```
   export RUBYGEMS_HOST=`aws codeartifact get-repository-endpoint --domain my_domain --domain-owner 111122223333 --repository my_repo --format ruby --query repositoryEndpoint --output text | sed 's:/*$::'`
   ```

------
#### [ Windows ]

   Les commandes suivantes permettent de récupérer le point de terminaison du référentiel, de découper le point final`/`, puis de le stocker dans une variable d'environnement.
   + Windows (en utilisant l'interface de commande par défaut) :

     ```
     for /f %i in ('aws codeartifact get-repository-endpoint --domain my_domain --domain-owner 111122223333 --repository my_repo --format ruby --query repositoryEndpoint --output text') do set RUBYGEMS_HOST=%i
                                     
     set RUBYGEMS_HOST=%RUBYGEMS_HOST:~0,-1%
     ```
   + Fenêtres PowerShell :

     ```
     $env:RUBYGEMS_HOST = (aws codeartifact get-repository-endpoint --domain my_domain --domain-owner 111122223333 --repository my_repo --format ruby --query repositoryEndpoint --output text).TrimEnd("/")
     ```

------

   L'URL suivante est un exemple de point de terminaison du référentiel :

   ```
   https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/ruby/my_repo/
   ```
**Note**  
Pour utiliser un point de terminaison à double pile, utilisez le `codeartifact.region.on.aws` point de terminaison.

1. Pour publier des gemmes Ruby dans votre dépôt, vous devez vous authentifier auprès de CodeArtifact with RubyGems en éditant votre `~/.gem/credentials` fichier pour inclure votre jeton d'authentification. Créez un `~/.gem/` répertoire et un `~/.gem/credentials` fichier si le répertoire ou le fichier n'existe pas.

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

   ```
   echo ":codeartifact_api_key: Bearer $CODEARTIFACT_AUTH_TOKEN" >> ~/.gem/credentials
   ```

------
#### [ Windows ]
   + Windows (en utilisant l'interface de commande par défaut) :

     ```
     echo :codeartifact_api_key: Bearer %CODEARTIFACT_AUTH_TOKEN% >> %USERPROFILE%/.gem/credentials
     ```
   + Fenêtres PowerShell :

     ```
     echo ":codeartifact_api_key: Bearer $env:CODEARTIFACT_AUTH_TOKEN" | Add-Content ~/.gem/credentials
     ```

------

1. `gem`Pour installer des gemmes Ruby depuis votre dépôt, vous devez ajouter les informations de point de terminaison du référentiel et le jeton d'authentification à votre `.gemrc` fichier. Vous pouvez l'ajouter au fichier global (`~/.gemrc`) ou à votre `.gemrc` fichier de projet. Les CodeArtifact informations que vous devez y ajouter `.gemrc` sont une combinaison du point de terminaison du référentiel et du jeton d'authentification. Il est formaté comme suit :

   ```
   https://aws:${CODEARTIFACT_AUTH_TOKEN}@my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/ruby/my_repo/
   ```
   + Pour le jeton d'authentification, vous pouvez utiliser la variable d'`CODEARTIFACT_AUTH_TOKEN`environnement définie lors d'une étape précédente.
   + Pour récupérer le point de terminaison du référentiel, vous pouvez lire la valeur de la variable d'`RUBYGEMS_HOST`environnement définie précédemment, ou vous pouvez utiliser la `get-repository-endpoint` commande suivante, en remplaçant les valeurs si nécessaire :

     ```
     aws codeartifact get-repository-endpoint --domain my_domain --domain-owner 111122223333 --repository my_repo --format ruby --query repositoryEndpoint --output text
     ```

   Une fois que vous avez le point final, utilisez un éditeur de texte pour l'ajouter `aws:${CODEARTIFACT_AUTH_TOKEN}@` à la position appropriée. Une fois que vous avez créé le point de terminaison du référentiel et la chaîne du jeton d'authentification, ajoutez-les à la `:sources:` section de votre `.gemrc` fichier à l'aide de la `echo` commande suivante :
**Avertissement**  
CodeArtifact ne prend pas en charge l'ajout de référentiels en tant que sources à l'aide de la `gem sources -add` commande. Vous devez ajouter la source directement dans le fichier.

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

   ```
   echo ":sources:
       - https://aws:${CODEARTIFACT_AUTH_TOKEN}@my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/ruby/my_repo/" > ~/.gemrc
   ```

------
#### [ Windows ]
   + Windows (en utilisant l'interface de commande par défaut) :

     ```
     echo ":sources:
         - https://aws:%CODEARTIFACT_AUTH_TOKEN%@my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/ruby/my_repo/" > "%USERPROFILE%\.gemrc"
     ```
   + Fenêtres PowerShell :

     ```
     echo ":sources:
         - https://aws:$env:CODEARTIFACT_AUTH_TOKEN@my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/ruby/my_repo/" | Add-Content ~/.gemrc
     ```

------

1. Pour utiliser Bundler, vous devez configurer Bundler avec l'URL du point de terminaison et le jeton d'authentification de votre référentiel en exécutant la commande suivante : `bundle config`

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

   ```
   bundle config $RUBYGEMS_HOST aws:$CODEARTIFACT_AUTH_TOKEN 
   ```

------
#### [ Windows ]
   + Windows (en utilisant l'interface de commande par défaut) :

     ```
     bundle config %RUBYGEMS_HOST% aws:%CODEARTIFACT_AUTH_TOKEN%
     ```
   + Fenêtres PowerShell :

     ```
     bundle config $Env:RUBYGEMS_HOST aws:$Env:CODEARTIFACT_AUTH_TOKEN
     ```

------

Maintenant que vous avez configuré RubyGems (`gem`) et Bundler (`bundle`) avec votre CodeArtifact dépôt, vous pouvez les utiliser pour publier et consommer des gemmes Ruby depuis et vers celui-ci.

## Installation de Ruby Gems depuis CodeArtifact
<a name="install-ruby-gems"></a>

Utilisez les procédures suivantes pour installer les gemmes Ruby à partir d'un CodeArtifact référentiel avec les outils `gem` ou `bundle` CLI.

### Installez Ruby Gems avec `gem`
<a name="install-ruby-gems-gem"></a>

Vous pouvez utiliser la CLI RubyGems (`gem`) pour installer rapidement une version spécifique d'une gemme Ruby depuis votre CodeArtifact dépôt.

**Pour installer des gemmes Ruby à partir d'un CodeArtifact dépôt avec `gem`**

1. Si ce n'est pas le cas, suivez les étapes décrites [Configure RubyGems (`gem`) et Bundler (`bundle`) avec CodeArtifact](#configure-ruby-gem) pour configurer la `gem` CLI afin d'utiliser votre CodeArtifact référentiel avec les informations d'identification appropriées.
**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.

1. Utilisez la commande suivante pour installer les gemmes Ruby depuis CodeArtifact :

   ```
   gem install my_ruby_gem --version 1.0.0
   ```

### Installez Ruby Gems avec `bundle`
<a name="install-ruby-gems-bundle"></a>

Vous pouvez utiliser la CLI Bundler (`bundle`) pour installer les gemmes Ruby configurées dans votre`Gemfile`.

**Pour installer des gemmes Ruby à partir d'un CodeArtifact dépôt avec `bundle`**

1. Si ce n'est pas le cas, suivez les étapes décrites [Configure RubyGems (`gem`) et Bundler (`bundle`) avec CodeArtifact](#configure-ruby-gem) pour configurer la `bundle` CLI afin d'utiliser votre CodeArtifact référentiel avec les informations d'identification appropriées.
**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.

1. Ajoutez l'URL du point de terminaison de votre CodeArtifact dépôt à votre `Gemfile` adresse `source` pour installer des gemmes Ruby configurées à partir de votre CodeArtifact référentiel et de ses flux en amont.

   ```
   source "https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/ruby/my_repo/"
                   
   gem 'my_ruby_gem'
   ```

1. Utilisez la commande suivante pour installer les gemmes Ruby comme indiqué dans votre `Gemfile` :

   ```
   bundle install
   ```

## Publier des gemmes Ruby sur CodeArtifact
<a name="publish-ruby-gems-gem"></a>

Utilisez la procédure suivante pour publier des gemmes Ruby dans un CodeArtifact référentiel à l'aide de la `gem` CLI.

1. Si ce n'est pas le cas, suivez les étapes décrites [Configure RubyGems (`gem`) et Bundler (`bundle`) avec CodeArtifact](#configure-ruby-gem) pour configurer la `gem` CLI afin d'utiliser votre CodeArtifact référentiel avec les informations d'identification appropriées.
**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.

1. Utilisez la commande suivante pour publier des gemmes Ruby dans un CodeArtifact dépôt. Notez que si vous n'avez pas défini la variable d'`RUBYGEMS_HOST`environnement, vous devez indiquer le point de terminaison de votre CodeArtifact référentiel dans l'`--host`option.

   ```
   gem push --key codeartifact_api_key my_ruby_gem-0.0.1.gem
   ```

# RubyGems support aux commandes
<a name="ruby-command-support"></a>

CodeArtifact prend en charge les `gem push` commandes `gem install` et. CodeArtifact ne prend pas en charge les `gem` commandes suivantes :
+ `gem fetch`
+ `gem info --remote`
+ `gem list --remote`
+ `gem mirror`
+ `gem outdated`
+ `gem owner`
+ `gem query`
+ `gem search`
+ `gem signin`
+ `gem signout`
+ `gem sources --add`
+ `gem sources --update`
+ `gem specification --remote`
+ `gem update`
+ `gem yank`

# Compatibilité avec le bundler
<a name="bundler-compatibility"></a>

 Ce guide contient des informations sur CodeArtifact la compatibilité avec Bundler. 

## Compatibilité avec le bundler
<a name="ruby-bundler-support"></a>

AWS CodeArtifact recommande Bundler 2.4.11 ou supérieur. Si vous rencontrez des problèmes lors de l'installation, mettez à jour la CLI Bundler vers la dernière version.

### Support des versions du bundler
<a name="ruby-bundler-version-support"></a>

Dans les versions de Bundler inférieures à 2.4.11, il existe une limite de 500 dépendances qui peuvent être définies dans le Gemfile avant que Bundler ne décide d'interroger l'index complet,. `specs.4.8.gz` Comme CodeArtifact il ne prend pas en charge l'index complet, la spécification de plus de 500 dépendances ne fonctionnera pas CodeArtifact lors de l'utilisation de versions de Bundler inférieures à 2.4.11.

Pour définir plus de 500 dépendances dans votre Gemfile avec CodeArtifact, mettez à jour Bundler vers la version 2.4.11 ou supérieure.

### Assistance aux opérations du bundler
<a name="ruby-bundler-operations-support"></a>

CodeArtifactn'inclut RubyGems pas le Bundler Compact Index APIs (l'`/versions`API n'est pas prise en charge). CodeArtifact ne prend en charge que l'API Dependencies.

De plus, CodeArtifact ne prend pas en charge les différentes spécifications APIs, telles que`specs.4.8.gz`.