기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
업스트림 리포지토리가 포함된 패키지 버전 요청
다음 예제는 패키지 관리자가 업스트림 리포지토리가 있는 패키지 리포지토리에서 패키지를 요청하는 경우 발생할 수 있는 시나리오를 CodeCatalyst 보여줍니다.
이 예제에서는 와 같은 패키지 관리자가 여러 업스트림 리포지토리downstream
가 있는 라는 패키지 리포지토리에서 패키지 버전을 npm
요청합니다. 패키지를 요청하면 다음이 발생할 수 있습니다.
-
요청된 패키지 버전이
downstream
에 포함되어 있는 경우 클라이언트에 반환됩니다. -
에 요청된 패키지 버전이 포함되어 있지 않은 경우
downstream
는 구성된 검색 순서로 CodeCatalystdownstream
의 업스트림 리포지토리에서 해당 버전을 검색합니다. 패키지 버전을 찾으면 해당 패키지에 대한 참조가downstream
에 복사되고 패키지 버전이 클라이언트에 반환됩니다. -
downstream
또는 업스트림 리포지토리에 패키지 버전이 포함되어 있지 않은 경우 HTTP 404Not Found
응답이 클라이언트로 반환됩니다.
하나의 리포지토리에 허용되는 최대 직접 업스트림 리포지토리 수는 10개입니다. 패키지 버전이 요청될 때 에서 CodeCatalyst 검색하는 최대 리포지토리 수는 25개입니다.
업스트림 리포지토리의 패키지 보존
요청된 패키지 버전이 업스트림 리포지토리에서 발견되면 해당 버전에 대한 참조가 유지되며 항상 이를 요청한 리포지토리에서 사용할 수 있습니다. 이렇게 하면 업스트림 리포지토리가 예기치 않게 중단되는 경우 패키지에 액세스할 수 있습니다. 유지되는 패키지 버전은 다음 사항에 영향을 받지 않습니다.
-
업스트림 리포지토리 삭제
-
업스트림 리포지토리와 다운스트림 리포지토리 간 연결 해제
-
업스트림 리포지토리에서 패키지 버전 삭제
-
업스트림 리포지토리의 패키지 버전 편집(예: 새 자산 추가)
업스트림 관계를 통해 패키지 가져오기
CodeCatalyst 는 업스트림 리포지토리라고 하는 연결된 여러 리포지토리를 통해 패키지를 가져올 수 있습니다. CodeCatalyst 패키지 리포지토리에 게이트웨이 리포지토리에 대한 업스트림 연결이 있는 다른 CodeCatalyst 패키지 리포지토리에 대한 업스트림 연결이 있는 경우 업스트림 리포지토리에 없는 패키지에 대한 요청은 외부 리포지토리에서 복사됩니다. 예를 들어, 라는 리포지토리repo-A
가 게이트웨이 리포지토리에 대한 업스트림 연결, npm-public-registry-gateway
. npm-public-registry-gateway
는 퍼블릭 패키지 리포지토리에 대한 업스트림 연결, 를 고려합니다https://npmjs.com
npm
가 repo-A
리포지토리를 사용하도록 구성된 경우 를 실행하면 에서 https://npmjs.comnpm install
시작됩니다npm-public-registry-gateway
. 설치된 버전도 함께 repo-A
로 가져옵니다. 다음 예제에서는 lodash
를 설치합니다.
$ npm config get registry https://packages.
region
.codecatalyst.aws/npm/space-name
/proj-name
/repo-name
/ $ npm install lodash + lodash@4.17.20 added 1 package from 2 contributors in 6.933s
를 실행한 후 는 npm
에서 가져온 버전이므로 최신 버전(lodash 4.17.20
)만 npm install
repo-A
포함합니다repo-A
.
npm-public-registry-gateway
에는 에 대한 외부 업스트림 연결이 있으므로 에서 가져온 https://npmjs.comnpm-public-registry-gateway
. 이러한 패키지 버전은 로 이어지는 업스트림 연결이 있는 다운스트림 리포지토리에서 가져올 수 있습니다npm-public-registry-gateway
.
의 내용은 시간이 https://npmjs.comnpm-public-registry-gateway
제공합니다.
중간 리포지토리에 패키지 보존
CodeCatalyst 를 사용하면 업스트림 리포지토리를 연결할 수 있습니다. 예를 들어 repo-A
는 업스트림 리포지토리repo-B
로 사용할 수 있고 는 업스트림 리포지토리repo-C
로 사용할 repo-B
수 있습니다. 이 구성을 통해 repo-A
에서 repo-B
및 repo-C
패키지 버전을 사용할 수 있습니다.
패키지 관리자가 리포지토리에 연결하고 리포지토리 에서 패키지 버전을 repo-A
가져오는 경우 repo-C
패키지 버전은 리포지토리 에 보관되지 않습니다repo-B
. 패키지 버전은 가장 먼 다운스트림 리포지토리에만 보관되며, 이 예제에서는 입니다repo-A
. 중간 리포지토리에는 보관되지 않습니다. 이는 체인이 긴 경우에도 마찬가지입니다. 예를 들어 , repo-A
, repo-B
repo-C
및 의 리포지토리가 4개 repo-D
있고 에서 패키지 버전을 repo-A
가져온 에 연결된 패키지 관리자가 있는 경우 repo-D
패키지 버전은 에 유지repo-A
되지만 repo-B
또는 에는 유지되지 않습니다repo-C
.
패키지 보존 동작은 퍼블릭 패키지 리포지토리에서 패키지 버전을 가져올 때 유사하지만, 패키지 버전은 퍼블릭 리포지토리에 대한 직접 업스트림 연결이 있는 게이트웨이 리포지토리에 항상 보존됩니다. 예를 들어 repo-A
는 업스트림 리포지토리repo-B
로 사용됩니다. 는 업스트림 리포지토리repo-B
npm-public-registry-gateway
로, 퍼블릭 리포지토리 npmjs.com 업스트림에 연결됩니다. 아래 다이어그램을 참조하세요.
예를 들어 에 연결된 패키지 관리자가 특정 패키지 버전인 로대시 4.17.20을 repo-A
요청하고 패키지 버전이 세 리포지토리 중 하나에 없는 경우 npmjs.com 가져옵니다. lodash 4.17.20를 가져오면 가장 먼 다운스트림 리포지토리repo-A
이고 퍼블릭 외부 리포지토리에 대한 업스트림 연결이 npm-public-registry-gateway
있으므로 에 보존됩니다npmjs.com. lodash 4.17.20은 중간 리포지토리repo-B
이므로 에 보존되지 않습니다.