AWS CLI를 사용하여 시작하기
AWS Command Line Interface(AWS CLI)를 사용하여 CodeArtifact를 시작하려면 다음 단계를 실행합니다. 자세한 내용은 설치 또는 업그레이드 후 AWS CLI 구성하기 섹션을 참조하세요. 이 안내서는 npm 패키지 관리자를 사용합니다. 다른 패키지 관리자를 사용하는 경우 다음 단계 중 일부를 수정해야 합니다.
-
AWS CLI를 사용하여 create-domain 명령을 실행합니다.
aws codeartifact create-domain --domainmy-domainJSON 형식의 데이터는 새 도메인에 관한 세부 정보와 함께 출력에 표시됩니다.
{ "domain": { "name": "my-domain", "owner": "111122223333", "arn": "arn:aws:codeartifact:us-west-2:111122223333:domain/my-domain", "status": "Active", "createdTime": "2020-10-07T15:36:35.194000-04:00", "encryptionKey": "arn:aws:kms:us-west-2:111122223333:key/your-kms-key", "repositoryCount": 0, "assetSizeBytes": 0 } }Could not connect to the endpoint URL오류가 표시되는 경우 AWS CLI가 구성되어 있고 기본 지역 이름이 리포지토리를 생성한 리전과 동일한 리전으로 설정되어 있는지 확인합니다. AWS Command Line Interface 구성을 참조합니다. -
create-repository 명령을 사용하여 도메인에 리포지토리를 생성합니다.
aws codeartifact create-repository --domainmy-domain--domain-owner111122223333--repositorymy-repoJSON 형식의 데이터는 새 리포지토리에 관한 세부 정보와 함께 출력에 표시됩니다.
{ "repository": { "name": "my-repo", "administratorAccount": "111122223333", "domainName": "my-domain", "domainOwner": "111122223333", "arn": "arn:aws:codeartifact:us-west-2:111122223333:repository/my-domain/my-repo", "upstreams": [], "externalConnections": [] } } -
create-repository 명령을 실행하여
my-repo리포지토리의 업스트림 리포지토리를 생성합니다.aws codeartifact create-repository --domainmy-domain--domain-owner111122223333--repositorynpm-storeJSON 형식의 데이터는 새 리포지토리에 관한 세부 정보와 함께 출력에 표시됩니다.
{ "repository": { "name": "npm-store", "administratorAccount": "111122223333", "domainName": "my-domain", "domainOwner": "111122223333", "arn": "arn:aws:codeartifact:us-west-2:111122223333:repository/my-domain/npm-store", "upstreams": [], "externalConnections": [] } } -
associate-external-connection 명령을 사용하여 npm 퍼블릭 리포지토리에 대한 외부 연결을
npm-store리포지토리에 추가합니다.aws codeartifact associate-external-connection --domainmy-domain--domain-owner111122223333--repositorynpm-store--external-connection"public:npmjs"JSON 형식의 데이터는 리포지토리와 그것의 새 외부 연결에 관한 세부 정보와 함께 출력 화면에 표시됩니다.
{ "repository": { "name": "npm-store", "administratorAccount": "111122223333", "domainName": "my-domain", "domainOwner": "111122223333", "arn": "arn:aws:codeartifact:us-west-2:111122223333:repository/my-domain/npm-store", "upstreams": [], "externalConnections": [ { "externalConnectionName": "public:npmjs", "packageFormat": "npm", "status": "AVAILABLE" } ] } }자세한 내용은 CodeArtifact 저장소를 공용 저장소에 연결하기 섹션을 참조하세요.
-
update-repository 명령을 사용하여
npm-store리포지토리를my-repo리포지토리에 대한 업스트림 리포지토리로 연결합니다.aws codeartifact update-repository --repositorymy-repo--domainmy-domain--domain-owner111122223333--upstreams repositoryName=npm-storeJSON 형식의 데이터는 새 업스트림 리포지토리를 포함해 업데이트된 리포지토리에 관한 세부 정보와 함께 출력 화면에 표시됩니다.
{ "repository": { "name": "my-repo", "administratorAccount": "111122223333", "domainName": "my-domain", "domainOwner": "111122223333", "arn": "arn:aws:codeartifact:us-west-2:111122223333:repository/my-domain/my-repo", "upstreams": [ { "repositoryName": "npm-store" } ], "externalConnections": [] } }자세한 내용은 업스트림 리포지토리 추가 또는 제거(AWS CLI) 섹션을 참조하세요.
-
login 명령을 실행하여
my-repo리포지토리와 함께 npm 패키지 관리자를 구성합니다.aws codeartifact login --tool npm --repositorymy-repo--domainmy-domain--domain-owner111122223333로그인이 성공했음을 확인하는 출력 화면이 표시될 것입니다.
Successfully configured npm to use AWS CodeArtifact repository https://my-domain-111122223333.d.codeartifact.us-east-2.amazonaws.com/npm/my-repo/ Login expires in 12 hours at 2020-10-08 02:45:33-04:00자세한 내용은 CodeArtifact로 npm 구성 및 사용 섹션을 참조하세요.
-
npm CLI를 사용하여 npm 패키지를 설치합니다. 예를 들어, 인기 있는 npm 패키지
lodash를 설치하려면 다음 명령을 실행합니다.npm installlodash -
list-packages 명령을 실행하면
my-repo리포지토리에 방금 설치한 패키지를 볼 수 있습니다.참고
npm install설치 명령이 완료되는 시점과 패키지가 리포지토리에 표시되는 시점 간에 지연이 발생할 수 있습니다. 퍼블릭 리포지토리에서 패키지를 가져올 때 일반적인 지연 시간에 관한 자세한 내용은 외부 연결 지연 시간를 참조하세요.aws codeartifact list-packages --domainmy-domain--repositorymy-repoJSON 형식의 데이터는 설치한 패키지의 형식 및 이름과 함께 출력 화면에 표시됩니다.
{ "packages": [ { "format": "npm", "package": "lodash" } ] }이제 다음과 같이 세 개의 CodeArtifact 리소스가 있습니다.
-
도메인
my-domain. -
my-domain에 포함된my-repo라는 이름의 리포지토리. 이 리포지토리에는 npm 패키지가 있습니다. -
my-domain에 포함된npm-store라는 이름의 리포지토리. 이 리포지토리는 퍼블릭 npm 리포지토리에 대한 외부 연결이 있으며 업스트림 리포지토리로서my-repo리포지토리와 연결되어 있습니다.
-
-
추가 AWS 요금이 부과되지 않도록 하려면 이 자습서에서 사용한 리소스를 삭제하세요.
참고
리포지토리가 포함된 도메인은 삭제할 수 없으므로
my-domain을 삭제하기 전에 먼저my-repo와npm-store를 삭제해야 합니다.-
npm-store리포지토리를 삭제하려면 delete-repository 명령을 사용합니다.aws codeartifact delete-repository --domainmy-domain--domain-owner111122223333--repositorymy-repoJSON 형식의 데이터는 삭제된 리포지토리에 관한 세부 정보와 함께 출력 화면에 표시됩니다.
{ "repository": { "name": "my-repo", "administratorAccount": "111122223333", "domainName": "my-domain", "domainOwner": "111122223333", "arn": "arn:aws:codeartifact:us-west-2:111122223333:repository/my-domain/my-repo", "upstreams": [ { "repositoryName": "npm-store" } ], "externalConnections": [] } } -
npm-store리포지토리를 삭제하려면 delete-repository 명령을 사용합니다.aws codeartifact delete-repository --domainmy-domain--domain-owner111122223333--repositorynpm-storeJSON 형식의 데이터는 삭제된 리포지토리에 관한 세부 정보와 함께 출력 화면에 표시됩니다.
{ "repository": { "name": "npm-store", "administratorAccount": "111122223333", "domainName": "my-domain", "domainOwner": "111122223333", "arn": "arn:aws:codeartifact:us-west-2:111122223333:repository/my-domain/npm-store", "upstreams": [], "externalConnections": [ { "externalConnectionName": "public:npmjs", "packageFormat": "npm", "status": "AVAILABLE" } ] } } -
my-domain리포지토리를 삭제하려면 delete-domain 명령을 사용합니다.aws codeartifact delete-domain --domainmy-domain--domain-owner111122223333JSON 형식의 데이터는 삭제된 도메인에 관한 세부 정보와 함께 출력 화면에 표시됩니다.
{ "domain": { "name": "my-domain", "owner": "111122223333", "arn": "arn:aws:codeartifact:us-west-2:111122223333:domain/my-domain", "status": "Deleted", "createdTime": "2020-10-07T15:36:35.194000-04:00", "encryptionKey": "arn:aws:kms:us-west-2:111122223333:key/your-kms-key", "repositoryCount": 0, "assetSizeBytes": 0 } }
-