

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# CodeArtifact で RubyGems と Bundler を設定して使用する
<a name="configure-use-rubygems-bundler"></a>

CodeArtifact でリポジトリを作成したら、RubyGems (`gem`) と Bundler (`bundle`) を使用して gem をインストールして公開できます。このトピックでは、CodeArtifact リポジトリの認証と使用のためにパッケージマネージャーを設定する方法について説明します。

## CodeArtifact で RubyGems (`gem`) と Bundler (`bundle`) を設定する
<a name="configure-ruby-gem"></a>

RubyGems (`gem`) または Bundler (`bundle`) を使用して、 AWS CodeArtifact に gem を発行したり、CodeArtifact から gem を使用したりするには、まず CodeArtifact リポジトリ情報を使用してそれらを設定する必要があります。これには、アクセスするための認証情報が含まれます。次のいずれかの手順に沿って、CodeArtifact リポジトリのエンドポイント情報と認証情報を使用して `gem` および `bundle` CLI ツールを設定します。

### コンソールの手順を使用して RubyGems と Bundler を設定する
<a name="configure-ruby-gem-console"></a>

コンソールの設定手順を使用して、Ruby パッケージマネージャーを CodeArtifact リポジトリに接続できます。コンソールの手順にはカスタムコマンドが用意されており、CodeArtifact 情報を検索して入力することなく、パッケージマネージャーをセットアップできます。

1. [https://console.aws.amazon.com/codesuite/codeartifact/home](https://console.aws.amazon.com/codesuite/codeartifact/home) で AWS CodeArtifact コンソールを開きます。

1. ナビゲーションペインで、**[リポジトリ]** をクリックし、Ruby の gem のインストールまたはプッシュに使用するリポジトリの名前を選択します。

1. **[接続手順の表示]** を選択します。

1. オペレーティングシステムを選択します。

1. CodeArtifact リポジトリで設定する Ruby パッケージマネージャークライアントを選択します。

1. 生成された手順に従って、Ruby gem をリポジトリからインストールするか、Ruby gem をリポジトリに公開するようにパッケージマネージャークライアントを設定します。

### RubyGems と Bundler を手動で設定する
<a name="configure-ruby-gem-manual"></a>

コンソールの設定手順を使用できない場合、または使用しない場合は、次の手順を使用して、手動で Ruby パッケージマネージャーを CodeArtifact リポジトリに接続できます。

1. コマンドラインで以下のコマンドを使用して、CodeArtifact 認可トークンを取得し、認可トークンを環境変数に保存します。
   + {{my\_domain}} を CodeArtifact ドメイン名に置き換えます。
   + {{111122223333}} をドメイン所有者の AWS アカウント ID に置き換えます。所有しているドメインのリポジトリにアクセスする場合、`--domain-owner`を含める必要はありません。詳細については、「[クロスアカウントドメイン](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 (デフォルトのコマンドシェルを使用):

     ```
     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
     ```
   + Windows PowerShell：

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

------

1. Ruby の gem をリポジトリに公開するには、次のコマンドを使用して CodeArtifact リポジトリのエンドポイントを取得し、`RUBYGEMS_HOST` 環境変数に保存します。`gem` CLI はこの環境変数を使用して、gem が公開される場所を決定します。
**注記**  
または、`RUBYGEMS_HOST` 環境変数を使用する代わりに、`gem push` コマンドを使用するときにリポジトリエンドポイントに `--host` オプションを指定することもできます。
   + {{my\_domain}} を CodeArtifact ドメイン名に置き換えます。
   + {{111122223333}} をドメイン所有者の AWS アカウント ID に置き換えます。所有しているドメインのリポジトリにアクセスする場合、`--domain-owner`を含める必要はありません。詳細については、「[クロスアカウントドメイン](domain-overview.md#domain-overview-cross-account)」を参照してください。
   + {{my\_repo}} を CodeArtifact リポジトリ名で置き換えます。

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

   次のコマンドは、リポジトリエンドポイントを取得し、末尾の `/` をトリミングして、環境変数に保存します。
   + Windows (デフォルトのコマンドシェルを使用):

     ```
     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%
     ```
   + Windows 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("/")
     ```

------

   次の URL は、リポジトリエンドポイントの例です。

   ```
   https://{{my_domain}}-{{111122223333}}.d.codeartifact.{{us-west-2}}.amazonaws.com/ruby/{{my_repo}}/
   ```
**注記**  
デュアルスタックエンドポイントを使用するには、`codeartifact.{{region}}.on.aws` エンドポイントを使用してください。

1. Ruby の gem をリポジトリに公開するには、`~/.gem/credentials` ファイルを編集して認証トークンを含めることで、RubyGems で CodeArtifact を認証する必要があります。`~/.gem/` ディレクトリまたは `~/.gem/credentials` ファイルが存在しない場合は、ディレクトリとファイルを作成します。

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

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

------
#### [ Windows ]
   + Windows (デフォルトのコマンドシェルを使用):

     ```
     echo :codeartifact_api_key: Bearer %CODEARTIFACT_AUTH_TOKEN% >> %USERPROFILE%/.gem/credentials
     ```
   + Windows PowerShell：

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

------

1. `gem` を使用してリポジトリから Ruby gem をインストールするには、リポジトリエンドポイント情報と認証トークンを `.gemrc` ファイルに追加する必要があります。グローバルファイル (`~/.gemrc`) またはプロジェクト `.gemrc` ファイルに追加できます。`.gemrc` に追加する必要がある CodeArtifact 情報は、リポジトリエンドポイントと認証トークンの組み合わせです。形式は次のとおりです。

   ```
   https://aws:${CODEARTIFACT_AUTH_TOKEN}@{{my_domain}}-{{111122223333}}.d.codeartifact.{{us-west-2}}.amazonaws.com/ruby/{{my_repo}}/
   ```
   + 認証トークンには、前のステップで設定した `CODEARTIFACT_AUTH_TOKEN` 環境変数を使用できます。
   + リポジトリエンドポイントを取得するには、前もって設定した `RUBYGEMS_HOST` 環境変数の値を読み取るか、次の `get-repository-endpoint` コマンドを使用し、必要に応じて値を置き換えます。

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

   エンドポイントを取得したら、テキストエディタを使用して適切な位置に `aws:${CODEARTIFACT_AUTH_TOKEN}@` を追加します。リポジトリエンドポイントと認証トークンの文字列を作成したら、次のように `echo` コマンドを使用して `.gemrc` ファイルの `:sources:` セクションに追加します。
**警告**  
CodeArtifact は、`gem sources -add` コマンドを使用したソースとしてのリポジトリの追加をサポートしていません。ソースはファイルに直接追加する必要があります。

------
#### [ 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 (デフォルトのコマンドシェルを使用):

     ```
     echo ":sources:
         - https://aws:%CODEARTIFACT_AUTH_TOKEN%@{{my_domain}}-{{111122223333}}.d.codeartifact.{{us-west-2}}.amazonaws.com/ruby/{{my_repo}}/" > "%USERPROFILE%\.gemrc"
     ```
   + Windows 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. Bundler を使用するには、次の `bundle config` コマンドを実行し、リポジトリエンドポイント URL と認証トークンを使用して Bundler を設定する必要があります。

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

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

------
#### [ Windows ]
   + Windows (デフォルトのコマンドシェルを使用):

     ```
     bundle config %RUBYGEMS_HOST% aws:%CODEARTIFACT_AUTH_TOKEN%
     ```
   + Windows PowerShell：

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

------

CodeArtifact リポジトリで設定した RubyGems (`gem`) と Bundler (`bundle`) を使用して Ruby の gem を公開し、そこから gem を使用できます。

## CodeArtifact からの Ruby gem のインストール
<a name="install-ruby-gems"></a>

`gem` または `bundle` CLI ツールを使用して CodeArtifact リポジトリから Ruby の gem をインストールするには、次の手順に従います。

### `gem` で Ruby gem をインストールする
<a name="install-ruby-gems-gem"></a>

RubyGems (`gem`) CLI を使用すると、CodeArtifact リポジトリから特定のバージョンの Ruby gem をすばやくインストールできます。

**`gem` を使用して CodeArtifact リポジトリから Ruby gem をインストールする方法**

1. まだ `gem` CLI を設定していない場合は、「[CodeArtifact で RubyGems (`gem`) と Bundler (`bundle`) を設定する](#configure-ruby-gem)」の手順に従って、CodeArtifact リポジトリを使用するように適切な認証情報を使用して設定します。
**注記**  
認可トークンの有効期限は 12 時間です。トークンの作成後 12 時間が経過した場合は、新しいトークンを作成する必要があります。

1. 次のコマンドを使用して、CodeArtifact から Ruby gem をインストールします。

   ```
   gem install {{my_ruby_gem}} --version {{1.0.0}}
   ```

### `bundle` で Ruby gem をインストールする
<a name="install-ruby-gems-bundle"></a>

Bundler (`bundle`) CLI を使用して、`Gemfile` で設定された Ruby gem をインストールできます。

**`bundle` を使用して CodeArtifact リポジトリから Ruby gem をインストールする方法**

1. まだ `bundle` CLI を設定していない場合は、「[CodeArtifact で RubyGems (`gem`) と Bundler (`bundle`) を設定する](#configure-ruby-gem)」の手順に従って、CodeArtifact リポジトリを使用するように適切な認証情報を使用して設定します。
**注記**  
認可トークンの有効期限は 12 時間です。トークンの作成後 12 時間が経過した場合は、新しいトークンを作成する必要があります。

1. CodeArtifact リポジトリエンドポイント URL を `source` として `Gemfile` に追加し、CodeArtifact リポジトリとそのアップストリームから設定済みの Ruby gem をインストールします。

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

1. 次のコマンドを使用して、`Gemfile` で指定された Ruby gem をインストールします。

   ```
   bundle install
   ```

## CodeArtifact への Ruby gem の公開
<a name="publish-ruby-gems-gem"></a>

`gem` CLI を使用して Ruby の gem を CodeArtifact リポジトリに公開するには、次の手順に従います。

1. まだ `gem` CLI を設定していない場合は、「[CodeArtifact で RubyGems (`gem`) と Bundler (`bundle`) を設定する](#configure-ruby-gem)」の手順に従って、CodeArtifact リポジトリを使用するように適切な認証情報を使用して設定します。
**注記**  
認可トークンの有効期限は 12 時間です。トークンの作成後 12 時間が経過した場合は、新しいトークンを作成する必要があります。

1. 次のコマンドを使用して、Ruby の gem を CodeArtifact リポジトリに公開します。`RUBYGEMS_HOST` 環境変数を設定していない場合は、`--host` オプションで CodeArtifact リポジトリエンドポイントを指定する必要があります。

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