기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWS CodeArtifact 개념
사용할 때 알아야 할 몇 가지 개념과 용어는 다음과 같습니다. CodeArtifact
자산
에셋은 npm 파일, Maven POM 및 JAR 파일과 같은 패키지 버전과 관련된 .tgz
파일에 CodeArtifact 저장되는 개별 파일입니다.
도메인
리포지토리는 도메인이라는 상위 수준 엔티티로 통합됩니다. 모든 패키지 자산과 메타데이터는 도메인에 저장되지만 리포지토리를 통해 소비됩니다. Maven JAR 파일과 같은 특정 패키지 자산은 해당 자산이 있는 리포지토리 개수와 관계없이 도메인당 한 번씩 저장됩니다. 도메인의 모든 자산과 메타데이터는 () 에 저장된 동일한 AWS KMS key (KMS 키) 로 암호화됩니다. AWS Key Management Service AWS KMS
각 리포지토리는 단일 도메인의 구성원이며 다른 도메인으로 이동할 수 없습니다.
도메인을 사용하면 여러 리포지토리에 조직 정책을 적용할 수 있습니다. 이 방식을 사용하면 도메인의 리포지토리에 액세스할 수 있는 계정과 패키지 소스로 사용할 수 있는 공용 리포지토리를 지정할 수 있습니다.
조직에 여러 도메인이 있을 수 있지만 게시된 아티팩트를 모두 포함하는 단일 프로덕션 도메인이 있는 것이 좋습니다. 이렇게 하면 팀이 조직 전체에서 패키지를 찾고 공유할 수 있습니다.
리포지토리
CodeArtifact 리포지토리에는 패키지 버전 세트가 포함되며, 각 패키지 버전은 자산 세트에 매핑됩니다. 리포지토리는 다국어 개체이며, 따라서 지원되는 모든 유형의 패키지가 단일 리포지토리에 포함될 수 있습니다. 각 리포지토리는 nuget CLI, npm CLI, Maven CLI(mvn), pip와 같은 도구를 사용하여 패키지를 가져오고 게시하기 위한 엔드포인트를 노출합니다. 도메인당 최대 1,000개의 리포지토리를 생성할 수 있습니다.
패키지
패키지는 종속성을 해결하고 소프트웨어를 설치하는 데 필요한 소프트웨어 및 메타데이터 번들입니다. 에서 CodeArtifact 패키지는 패키지 이름, in과 같은 선택적 네임스페이스, 패키지 버전 세트@types/node
, npm 태그와 같은 패키지 수준 메타데이터로 @types
구성됩니다.
AWS CodeArtifact 카고, 제네릭, 메이븐, npm, NuGetPyPI, 루비, 스위프트 패키지 형식을 지원합니다.
패키지 그룹
패키지 그룹은 패키지 형식, 패키지 네임스페이스 및 패키지 이름을 사용하여 정의된 패턴과 일치하는 여러 패키지에 구성을 적용하는 데 사용할 수 있습니다. 패키지 그룹을 사용하여 여러 패키지에 대한 패키지 오리진 제어를 보다 편리하게 구성할 수 있습니다. Package Origin 컨트롤은 새 패키지 버전의 수집 또는 게시를 차단하거나 허용하는 데 사용되므로 종속성 대체 공격이라는 악의적인 행동으로부터 사용자를 보호합니다.
패키지 네임스페이스
일부 패키지 형식은 계층적 패키지 이름을 지원하여 패키지를 논리적 그룹으로 구성할 수 있고 이름 충돌을 방지하는 데 도움이 됩니다. 예를 들어 npm은 범위를 지원합니다. 자세한 내용은 npm 범위 설명서@types/node
npm 패키지의 범위는 @types
, 이름은 node
입니다. @types
범위에는 다른 패키지 이름이 많습니다. 에서 CodeArtifact 범위 (“유형”) 는 패키지 네임스페이스라고 하고 이름 (“노드”) 은 패키지 이름이라고 합니다. Maven 패키지의 경우 패키지 네임스페이스는 Maven groupID에 해당합니다. org.apache.logging.log4j:log4j
Maven 패키지에는 org.apache.logging.log4j
groupID(패키지 네임스페이스)와 log4j
artifactID(패키지 이름)가 있습니다. 일반 패키지의 경우 네임스페이스가 필요합니다. PyPI와 같은 일부 패키지 형식은 npm 범위 또는 Maven GroupId와 유사한 개념의 계층적 이름을 지원하지 않습니다. 패키지 이름을 그룹화하는 방법이 없으면 이름 충돌을 피하기가 더 어려울 수 있습니다.
패키지 버전
패키지 버전은 패키지의 특정 버전(예: @types/node 12.6.9
)을 식별합니다. 버전 번호 형식과 의미 체계는 패키지 형식에 따라 다릅니다. 예를 들어, npm 패키지 버전은 의미 체계 버전 관리 사양
패키지 버전 개정
패키지 버전 개정은 패키지 버전의 특정 자산 및 메타데이터 세트를 식별하는 문자열입니다. 패키지 버전이 업데이트될 때마다 새 패키지 버전 개정이 생성됩니다. 예를 들어 Python 패키지 버전의 소스 배포 아카이브(sdist)를 게시하고 나중에 컴파일된 코드가 포함된 Python 휠을 동일한 버전에 추가할 수 있습니다. 휠을 게시하면 새 패키지 버전 개정이 생성됩니다.
업스트림 리포지토리
다운스트림 리포지토리의 리포지토리 엔드포인트에서 해당 리포지토리의 패키지 버전에 액세스할 수 있는 경우 한 리포지토리는 다른 리포지토리의 업스트림입니다. 이 방식은 클라이언트의 관점에서 볼 때 두 리포지토리의 콘텐츠를 효과적으로 병합합니다. 를 사용하여 CodeArtifact 두 리포지토리 간에 업스트림 관계를 만들 수 있습니다.