기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
CodeArtifact에서 리포지토리를 만든 후 npm 클라이언트를 사용하여 패키지를 설치하고 게시할 수 있습니다. 리포지토리 엔드포인트와 인증 토큰을 사용하여 npm을 구성하기 위해 권장되는 방법은 aws codeartifact login
명령을 사용하는 것입니다. npm을 수동으로 구성할 수도 있습니다.
목차
로그인 명령으로 npm 구성하기
aws codeartifact login
명령을 사용하여 npm에 사용할 보안 인증 정보를 가져올 수 있습니다.
참고
소유한 도메인의 리포지토리에 액세스하는 경우 --domain-owner
를 포함하지 않아도 됩니다. 자세한 내용은 크로스 계정 도메인 단원을 참조하십시오.
중요
npm 10.x 이상을 사용하는 경우 AWS CLI 버전 2.9.5 이상을 사용하여 aws codeartifact login
명령을 성공적으로 실행해야 합니다.
aws codeartifact login --tool
npm
--domainmy_domain
--domain-owner111122223333
--repositorymy_repo
이 명령은 ~/.npmrc 파일을 다음과 같이 변경합니다.
-
AWS 보안 인증을 사용하여 CodeArtifact에서 가져온 인증 토큰을 추가합니다.
-
npm 레지스트리를
--repository
옵션으로 지정된 리포지토리로 설정합니다. -
npm 6 이하의 경우: 모든 npm 명령에 대해 인증 토큰이 전송되도록
"always-auth=true"
를 추가합니다.
login
직접 호출 후의 기본 승인 기간은 12시간이며, 토큰을 주기적으로 재발급하려면 login
를 직접적으로 호출해야 합니다. login
명령으로 만든 인증 토큰에 관한 자세한 내용은 login 명령으로 생성된 토큰을 참조하세요.
로그인 명령을 실행하지 않고 npm 구성하기
npm 구성을 수동으로 업데이트하여 aws codeartifact login
명령 없이 CodeArtifact 리포지토리로 npm을 구성할 수 있습니다.
로그인 명령을 실행하지 않고 npm을 구성하려면
명령줄에서 CodeArtifact 인증 토큰을 가져와 환경 변수에 저장합니다. npm은 이 토큰을 사용하여 CodeArtifact 리포지토리로 인증합니다.
참고
다음 명령은 macOS 또는 Linux 시스템에 사용됩니다. Windows 시스템에서 환경 변수를 구성하는 방법에 관한 자세한 내용은 환경 변수를 사용하여 인증 토큰 전달을 참조합니다.
CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain
my_domain
--domain-owner111122223333
--query authorizationToken --output text`다음 명령을 실행하여 CodeArtifact 리포지토리의 엔드포인트를 가져올 수 있습니다. 리포지토리 엔드포인트는 패키지를 설치하거나 게시하도록 npm을 리포지토리로 이동하는 데 사용됩니다.
my_domain
을 CodeArtifact 도메인 이름으로 변경합니다.111122223333
을 도메인 소유자의 AWS 계정 ID로 바꿉니다. 소유한 도메인의 리포지토리에 액세스하는 경우--domain-owner
를 포함하지 않아도 됩니다. 자세한 내용은 크로스 계정 도메인 단원을 참조하십시오.my_repo
를 CodeArtifact 리포지토리 이름으로 변경합니다.
aws codeartifact get-repository-endpoint --domain
my_domain
--domain-owner111122223333
--repositorymy_repo
--format npm다음 URL은 리포지토리 엔드포인트의 예입니다.
https://
my_domain
-111122223333.d.codeartifact.us-west-2
.amazonaws.com/npm/my_repo
/중요
레지스트리 URL은 슬래시(/)로 끝나야 합니다. 그렇지 않으면 리포지토리에 연결할 수 없습니다.
npm config set
명령을 실행하여 레지스트리를 CodeArtifact 리포지토리로 설정합니다. URL을 이전 단계의 리포지토리 엔드포인트 URL로 바꿉니다.npm config set registry=https://
my_domain
-111122223333
.d.codeartifact.region
.amazonaws.com/npm/my_repo
/참고
듀얼 스택 엔드포인트를 사용하려면
codeartifact.
엔드포인트를 사용합니다.region
.on.awsnpm config set
명령을 실행하여 npm 구성에 인증 토큰을 추가합니다.npm config set //
my_domain
-111122223333
.d.codeartifact.region
.amazonaws.com/npm/my_repo
/:_authToken=$CODEARTIFACT_AUTH_TOKENnpm 6 이하의 경우:
GET
요청이 있을 경우에도 npm이 항상 CodeArtifact에 인증 토큰을 전달하도록 하려면always-auth
구성 변수를npm config set
로 설정합니다.npm config set //
my_domain
-111122223333
.d.codeartifact.region
.amazonaws.com/npm/my_repo
/:always-auth=true
npm 구성 파일 예(.npmrc
)
다음은 위의 지침에 따라 CodeArtifact 레지스트리 엔드포인트를 설정하고 인증 토큰을 추가하며 always-auth
를 구성한 후의 .npmrc
예제 파일입니다.
registry=https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/npm/my-cli-repo/ //my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/npm/my_repo/:_authToken=eyJ2ZX... //my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/npm/my_repo/:always-auth=true
npm 명령 실행
npm 클라이언트를 구성한 후 npm 명령을 실행할 수 있습니다. 패키지가 리포지토리 또는 업스트림 리포지토리 중 하나에 있다고 할 경우, npm install
을 사용하여 패키지를 설치할 수 있습니다. 예를 들어, 다음 명령을 사용해 lodash
패키지를 설치합니다.
npm install lodash
다음 명령을 사용하여 새 npm 패키지를 CodeArtifact 리포지토리에 게시하세요.
npm publish
npm 패키지를 만드는 방법에 관한 자세한 내용은 npm 설명서 웹 사이트에서 Node.js 모듈 생성
npm 인증 및 권한 부여 확인
npm ping
명령을 간접적으로 호출하면 다음을 확인할 수 있습니다.
-
CodeArtifact 리포지토리에 인증할 수 있도록 보안 인증을 올바르게 구성했습니다.
-
권한 부여 구성 시
ReadFromRepository
권한이 부여됩니다.
npm ping
을 성공적으로 간접 호출한 결과는 다음과 같습니다.
$ npm -d ping
npm info it worked if it ends with ok
npm info using npm@6.4.1
npm info using node@v9.5.0
npm info attempt registry request try #1 at 4:30:59 PM
npm http request GET https://<domain>.d.codeartifact.us-west-2.amazonaws.com/npm/shared/-/ping?write=true
npm http 200 https:///npm/shared/-/ping?write=true
Ping success: {}
npm timing npm Completed in 716ms
npm info ok
이 -d
옵션을 사용하면 npm이 리포지토리 URL을 포함한 추가 디버그 정보를 인쇄합니다. 이 정보를 통해 npm이 사용자가 예상한 리포지토리를 사용하도록 구성되어 있는지 쉽게 확인할 수 있습니다.
기본 npm 레지스트리로 다시 변경
CodeArtifact로 npm을 구성하면 npm 레지스트리는 지정된 CodeArtifact 리포지토리로 설정됩니다. CodeArtifact에 대한 연결이 완료되면 다음 명령을 실행하여 npm 레지스트리를 기본 레지스트리로 다시 설정할 수 있습니다.
npm config set registry https://registry.npmjs.com/
npm 8.x 이상을 사용한 느린 설치 속도 문제 해결
패키지 리포지토리에 요청을 보내고 리포지토리가 자산을 직접 스트리밍하는 대신 클라이언트를 Amazon S3로 리디렉션하는 경우 npm 클라이언트가 종속성별로 몇 분 동안 중단될 수 있는 문제가 npm 버전 8.x 이상에 있다고 알려져 있습니다.
CodeArtifact 리포지토리는 요청을 항상 Amazon S3로 리디렉션하도록 설계되었으므로 이 문제가 발생하여 npm 설치 시간이 길어져 구축 시간이 길어지는 경우가 있습니다. 이 동작의 인스턴스는 몇 분 동안 진행률 표시줄로 표시됩니다.
이 문제를 방지하려면 다음 예시와 같이 npm
cli 명령과 함께 --no-progress
또는 progress=false
플래그를 사용하십시오.
npm install lodash --no-progress