업스트림 리포지토리에서의 API 동작 - CodeArtifact

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

업스트림 리포지토리에서의 API 동작

업스트림 리포지토리에 연결된 리포지토리에서 특정 CodeArtifact API를 호출하는 경우 패키지 또는 패키지 버전이 대상 리포지토리에 저장되어 있는지 업스트림 리포지토리에 저장되는지에 따라 동작이 달라질 수 있습니다. 이러한 API의 동작은 여기에 설명되어 있습니다.

API에 대한 자세한 내용은 API 참조를 참조하십시오. CodeArtifact CodeArtifact

패키지 또는 패키지 버전을 참조하는 대부분의 API는 지정된 패키지 버전이 대상 리포지토리에 없는 경우 ResourceNotFound 오류를 반환합니다. 이는 패키지 또는 패키지 버전이 업스트림 저장소에 있는 경우에도 마찬가지입니다. 사실상 이러한 API를 호출할 때 업스트림 리포지토리는 무시됩니다. 이러한 API는 다음과 같습니다.

  • DeletePackageVersions

  • DescribePackageVersion

  • GetPackageVersionAsset

  • GetPackageVersionReadme

  • ListPackages

  • ListPackageVersionAssets

  • ListPackageVersionDependencies

  • ListPackageVersions

  • UpdatePackageVersionsStatus

이 동작을 보여주기 위한 target-repo, upstream-repo 두 개의 저장소가 있습니다. target-repo는 비어 있으며 업스트림 리포지토리로 upstream-repo가 구성되었습니다. upstream-repo에는 lodash npm 패키지가 있습니다.

upstream-repo에서 lodash 패키지가 포함된 DescribePackageVersion API를 호출하면 다음과 같은 결과가 출력됩니다.

{ "packageVersion": { "format": "npm", "packageName": "lodash", "displayName": "lodash", "version": "4.17.20", "summary": "Lodash modular utilities.", "homePage": "https://lodash.com/", "sourceCodeRepository": "https://github.com/lodash/lodash.git", "publishedTime": "2020-10-14T11:06:10.370000-04:00", "licenses": [ { "name": "MIT" } ], "revision": "Ciqe5/9yicvkJT13b5/LdLpCyE6fqA7poa9qp+FilPs=", "status": "Published" }

target-repo에서 비어 있지만 업스트림으로 upstream-repo가 구성된 동일한 API를 호출하면 다음과 같은 결과가 출력됩니다.

An error occurred (ResourceNotFoundException) when calling the DescribePackageVersion operation: Package not found in repository. RepoId: repo-id, Package = PackageCoordinate{packageType=npm, packageName=lodash},

CopyPackageVersions API는 다르게 동작합니다. 기본적으로 CopyPackageVersions API는 대상 리포지토리에 저장된 패키지 버전만 복사합니다. 패키지 버전이 업스트림 리포지토리에는 저장되지만 대상 리포지토리에는 저장되지 않는 경우 복사되지 않습니다. 업스트림 리포지토리에만 저장되는 패키지의 패키지 버전을 포함하려면 API 요청에서 includeFromUpstream 값을 true로 설정해야 합니다.

CopyPackageVersions API에 대한 자세한 내용은 리포지토리 간 패키지 복사를 참조하세요.