업스트림 리포지토리가 포함된 패키지 버전 요청 - 아마존 CodeCatalyst

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

업스트림 리포지토리가 포함된 패키지 버전 요청

다음 예제는 패키지 관리자가 업스트림 리포지토리가 있는 CodeCatalyst 패키지 리포지토리에서 패키지를 요청할 때 발생할 수 있는 시나리오를 보여줍니다.

이 예제의 경우 패키지 관리자 (예:) 는 여러 npm 업스트림 저장소가 downstream 있는 이름이 지정된 패키지 저장소에서 패키지 버전을 요청합니다. 패키지 요청 시 다음과 같은 상황이 발생할 수 있습니다.

  • 요청된 패키지 버전이 downstream에 포함되어 있는 경우 클라이언트에 반환됩니다.

  • 요청된 패키지 버전이 포함되어 downstream 있지 않은 경우 업스트림 리포지토리에서 구성된 검색 순서대로 해당 패키지를 CodeCatalyst 검색합니다. downstream 패키지 버전을 찾으면 해당 패키지에 대한 참조가 downstream에 복사되고 패키지 버전이 클라이언트에 반환됩니다.

  • 어느 쪽 downstream 또는 해당 업스트림 리포지토리에도 패키지 버전이 포함되어 있지 않은 경우 HTTP 404 Not Found 응답이 클라이언트에 반환됩니다.

하나의 리포지토리에 허용되는 최대 직접 업스트림 리포지토리 수는 10개입니다. 패키지 버전을 요청할 때 CodeCatalyst 검색할 수 있는 최대 저장소 수는 25개입니다.

업스트림 리포지토리의 패키지 보존

요청된 패키지 버전이 업스트림 저장소에 있는 경우 해당 버전에 대한 참조는 유지되며 요청한 저장소에서 항상 사용할 수 있습니다. 이렇게 하면 업스트림 저장소가 예기치 않게 중단되는 경우에도 패키지에 액세스할 수 있습니다. 유지되는 패키지 버전은 다음 사항에 영향을 받지 않습니다.

  • 업스트림 리포지토리 삭제

  • 업스트림 리포지토리와 다운스트림 리포지토리 간 연결 해제

  • 업스트림 리포지토리에서 패키지 버전 삭제

  • 업스트림 리포지토리의 패키지 버전 편집(예: 새 자산 추가)

업스트림 관계를 통해 패키지를 가져오는 중

CodeCatalyst 업스트림 리포지토리라고 하는 여러 개의 연결된 리포지토리를 통해 패키지를 가져올 수 있습니다. CodeCatalyst 패키지 저장소에 게이트웨이 저장소에 대한 업스트림 연결이 있는 다른 CodeCatalyst 패키지 저장소에 대한 업스트림 연결이 있는 경우 업스트림 저장소에 없는 패키지에 대한 요청은 외부 저장소에서 복사됩니다. 예를 들어, 이라는 리포지토리가 게이트웨이 리포지토리에 대한 업스트림 연결을 repo-A 가지고 있는 구성을 생각해 보십시오. npm-public-registry-gateway npm-public-registry-gateway공개 패키지 리포지토리인 https://npmjs.com 에 대한 업스트림 연결이 있습니다.

세 개의 리포지토리가 서로 연결되어 있는 모습을 보여주는 간단한 업스트림 리포지토리 다이어그램

repo-A저장소를 사용하도록 구성된 경우 npm 를 실행하면 https://npmjs.com 에서 로 패키지 복사가 npm 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 install 후에는 최신 버전 (lodash 4.17.20) 만 repo-A 포함됩니다. 해당 버전이 가져온 버전이기 때문입니다. npm repo-A

https://npmjs.com 에 대한 외부 업스트림 연결이 npm-public-registry-gateway 있기 때문에 https://npmjs.com 에서 가져온 모든 패키지 버전이 에 저장됩니다. npm-public-registry-gateway 으로 연결되는 업스트림 연결이 있는 모든 다운스트림 저장소에서 이러한 패키지 버전을 가져올 수 있습니다. npm-public-registry-gateway

의 내용은 시간이 npm-public-registry-gateway 지남에 따라 https://npmjs.com 에서 가져온 모든 패키지 및 패키지 버전을 볼 수 있는 방법을 제공합니다.

중간 리포지토리에 패키지 보존

CodeCatalyst 업스트림 리포지토리를 체인으로 연결할 수 있습니다. 예를 들어 업스트림 리포지토리로 repo-Brepo-A 수 있고 업스트림 repo-C 리포지토리로 가질 repo-B 수 있습니다. 이 구성을 통해 repo-A에서 repo-Brepo-C 패키지 버전을 사용할 수 있습니다.

세 개의 리포지토리가 서로 연결되어 있는 모습을 보여주는 간단한 업스트림 리포지토리 다이어그램

패키지 관리자가 리포지토리에 repo-A 연결하고 리포지토리에서 패키지 버전을 가져올 때 패키지 버전은 리포지토리에 repo-C 보관되지 않습니다. repo-B 패키지 버전은 가장 멀리 떨어진 다운스트림 리포지토리에만 보관됩니다 (이 예에서는 그렇습니다). repo-A 중간 저장소에는 보관되지 않습니다. 더 긴 체인의 경우에도 마찬가지입니다. 예를 들어,,,, 네 개의 리포지토리가 있고 repo-D 패키지 관리자가 연결되어 패키지 버전을 repo-A 가져온 경우 패키지 버전은 or에 유지되지만 or에는 유지되지 않습니다. repo-A repo-B repo-C repo-D repo-A repo-B repo-C

패키지 보존 동작은 공용 패키지 저장소에서 패키지 버전을 가져올 때와 비슷합니다. 단, 패키지 버전이 공용 리포지토리에 직접 업스트림으로 연결된 게이트웨이 리포지토리에 항상 보존된다는 점이 다릅니다. 예를 들어 업스트림 repo-A repo-B 리포지토리로 사용합니다. repo-B공용 리포지토리인 npmjs.com에 대한 업스트림 연결이 있는 업스트림 리포지토리로 있습니다. 아래 다이어그램을 참조하십시오. npm-public-registry-gateway

npmjs.com에 대한 외부 업스트림 연결과 함께 연결된 세 개의 리포지토리를 보여주는 업스트림 리포지토리 다이어그램입니다.

에 연결된 패키지 관리자가 특정 패키지 버전 (예: lodash 4.17.20) 을 repo-A 요청하는데 해당 패키지 버전이 세 개의 리포지토리에 없는 경우 npmjs.com에서 해당 패키지 버전을 가져옵니다. lodash 4.17.20을 가져오면 가장 먼 다운스트림 저장소이고 공용 외부 저장소인 npmjs.com에 대한 업스트림 연결이 있기 때문에 이 저장소는 그대로 유지됩니다. repo-A npm-public-registry-gateway lodash 4.17.20은 중간 저장소이기 때문에 보관되지 않습니다. repo-B