

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

# Bundler 호환성
<a name="bundler-compatibility"></a>

 이 안내서에는 CodeArtifact와 Bundler의 호환성에 관한 정보가 포함되어 있습니다.

## Bundler 호환성
<a name="ruby-bundler-support"></a>

AWS CodeArtifact는 Bundler 2.4.11 이상을 권장합니다. 설치에 문제가 발생하면 Bundler CLI를 최신 버전으로 업데이트합니다.

### Bundler 버전 지원
<a name="ruby-bundler-version-support"></a>

2.4.11보다 낮은 Bundler 버전에서는 Bundler가 전체 인덱스 `specs.4.8.gz`를 쿼리하기로 결정하기 전에 Gemfile에 정의할 수 있는 종속성이 500개로 제한됩니다. CodeArtifact는 전체 인덱스를 지원하지 않으므로 2.4.11보다 낮은 Bundler 버전을 사용할 경우 500개 이상의 종속성을 지정하면 CodeArtifact에서 작동하지 않습니다.

CodeArtifact를 사용하여 Gemfile에서 500개 이상의 종속성을 정의하려면 Bundler를 버전 2.4.11 이상으로 업데이트합니다.

### Bundler 작업 지원
<a name="ruby-bundler-operations-support"></a>

Bundler는 압축 인덱스 API 또는 종속성 API라는 두 프로토콜 중 하나를 사용하여 Ruby Gem 종속성을 해결합니다. CodeArtifact는 둘 다 지원합니다. Bundler 2.4.11 이상에서는 Compact Index API를 선호하고 사용할 수 없는 경우 종속성 API로 돌아갑니다. 이전 버전에서는 종속성 API만 사용합니다. RubyGems 3.5.19 이상은를 실행할 때 직접 압축 인덱스 API를 사용합니다`gem install`.

CodeArtifact는 다음과 같은 Compact Index 엔드포인트를 지원합니다.
+ `GET /versions`: 리포지토리의 모든 Gem을 전체 버전 목록과 함께 반환합니다. Bundler와 RubyGems는이 엔드포인트를 종속성 확인의 진입점으로 사용합니다.
+ `GET /names`: 리포지토리의 모든 Gem 이름을 알파벳순으로 정렬하여 반환합니다.
+ `GET /info/{{gem-name}}`: 단일 젬에 대한 버전, 종속성 및 required-Ruby-version 정보를 반환합니다.

`/versions` 및 `/names` 엔드포인트는 최대 5,000개의 젬이 포함된 리포지토리를 지원합니다. 5,000개 이상의 젬이 포함된 리포지토리에 대한 요청은 HTTP 400 오류를 반환합니다.

CodeArtifact는에서 Bundler Dependencies API도 지원합니다`/api/v1/dependencies`. 단일 요청에는 여러 젬 이름이 포함될 수 있습니다. 다중 젬 요청이 계정의 *초당 읽기 요청* 할당량에 어떻게 가중치를 부여하는지에 대한 자세한 내용은 섹션을 참조하세요[in AWS CodeArtifact 할당량](service-limits.md).

`/versions` 및는 리포지토리의 모든 젬에 대한 데이터를 `/names` 반환하기 때문에 CodeArtifact는 반환된 젬 수를 기준으로 이러한 요청에 가중치를 부여합니다. 동시 `bundle install` 또는 `gem install` 작업을 실행하는 CI/CD 환경은 HTTP 요청 속도가 낮은 경우에도 제한될 수 있습니다. Ruby Gem 확인 중에 제한이 발생하는 경우 *단일 AWS 계정에서 초당 읽기 요청에* 대한 할당량 증가를 요청합니다.

CodeArtifact 호환성을 위한 차선책으로 이전에 RubyGems를 3.5.19 미만의 버전에 고정한 경우 이제 해당 핀을 제거하고 최신 버전으로 업그레이드할 수 있습니다.

CodeArtifact는 , `latest_specs.4.8.gz`및를 포함한 레거시 RubyGems 사양 인덱스`specs.4.8.gz`를 지원하지 않습니다`prerelease_specs.4.8.gz`. 이는 압축 인덱스 API로 대체되었습니다.

#### Compact Index 지원 테스트
<a name="ruby-compact-index-testing"></a>

CodeArtifact 리포지토리에서 Compact Index 해상도가 올바르게 작동하는지 확인하려면:

1. 이전에 RubyGems를 3.5.19 미만의 버전에 고정한 경우 핀을 제거합니다.

   ```
   gem update --system
   ```

1. RubyGems 및 Bundler 버전을 확인합니다.

   ```
   gem --version    # Should be 3.5.19 or higher
   bundle --version # Should be 2.4.11 or higher
   ```

1. CodeArtifact 리포지토리에 `gem install` 대해 테스트합니다.

   ```
   gem install <gem-name> --source https://<domain>-<account-id>.d.codeartifact.<region>.amazonaws.com/ruby/<repo>/
   ```

1. 상세 출력`bundle install`으로 테스트하여 압축 인덱스가 사용되고 있는지 확인합니다.

   ```
   bundle install --verbose 2>&1 | grep -i "compact\|/versions\|/info"
   ```

   `/info/<gem-name>` 대신 `/versions` 및에 대한 요청이 표시되어야 합니다`/api/v1/dependencies`.