

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 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에 젬을 게시하거나 젬을 사용하려면 먼저 액세스하기 위한 자격 증명을 포함한 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을 게시하고 사용할 수 있습니다.

## 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. 아직 구성하지 않았다면 [CodeArtifact로 RubyGems(`gem`) 및 Bundler(`bundle`) 구성](#configure-ruby-gem)의 단계에 따라 적절한 자격 증명과 함께 CodeArtifact 리포지토리를 사용하도록 `gem` CLI를 구성합니다.
**참고**  
생성된 권한 부여 토큰은 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. 아직 구성하지 않았다면 [CodeArtifact로 RubyGems(`gem`) 및 Bundler(`bundle`) 구성](#configure-ruby-gem)의 단계에 따라 적절한 자격 증명과 함께 CodeArtifact 리포지토리를 사용하도록 `bundle` CLI를 구성합니다.
**참고**  
생성된 권한 부여 토큰은 12시간 동안 유효합니다. 토큰이 생성된 후 12시간이 경과한 경우 새 토큰을 생성해야 합니다.

1. CodeArtifact 리포지토리 엔드포인트 URL을 `Gemfile`에 `source`로 추가하여 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. 아직 구성하지 않았다면 [CodeArtifact로 RubyGems(`gem`) 및 Bundler(`bundle`) 구성](#configure-ruby-gem)의 단계에 따라 적절한 자격 증명과 함께 CodeArtifact 리포지토리를 사용하도록 `gem` CLI를 구성합니다.
**참고**  
생성된 권한 부여 토큰은 12시간 동안 유효합니다. 토큰이 생성된 후 12시간이 경과한 경우 새 토큰을 생성해야 합니다.

1. 다음 명령을 사용하여 Ruby gem을 CodeArtifact 리포지토리에 게시합니다. `RUBYGEMS_HOST` 환경 변수를 설정하지 않은 경우 `--host` 옵션에 CodeArtifact 리포지토리 엔드포인트를 제공해야 합니다.

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