npm을 다음과 같이 구성하고 사용하십시오. CodeArtifact - CodeArtifact

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

npm을 다음과 같이 구성하고 사용하십시오. CodeArtifact

에서 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 --domain my_domain --domain-owner 111122223333 --repository my_repo

이 명령은 ~/.npmrc 파일을 다음과 같이 변경합니다.

  • 자격 증명을 사용하여 인증 토큰을 가져온 후 인증 토큰을 추가합니다. CodeArtifact AWS

  • npm 레지스트리를 --repository 옵션으로 지정된 리포지토리로 설정합니다.

  • npm 6 이하의 경우: 모든 npm 명령에 대해 인증 토큰이 전송되도록 "always-auth=true"를 추가합니다.

login 직접 호출 후의 기본 승인 기간은 12시간이며, 토큰을 주기적으로 재발급하려면 login를 직접적으로 호출해야 합니다. login 명령으로 만든 인증 토큰에 관한 자세한 내용은 login 명령으로 생성된 토큰을 참조하세요.

로그인 명령을 실행하지 않고 npm 구성하기

npm 구성을 수동으로 업데이트하여 aws codeartifact login 명령 없이 CodeArtifact 저장소에 npm을 구성할 수 있습니다.

로그인 명령을 실행하지 않고 npm을 구성하려면
  1. 명령줄에서 CodeArtifact 인증 토큰을 가져와 환경 변수에 저장합니다. npm은 이 토큰을 사용하여 리포지토리를 인증합니다. CodeArtifact

    참고

    다음 명령은 macOS 또는 Linux 시스템에 사용됩니다. Windows 시스템에서 환경 변수를 구성하는 방법에 관한 자세한 내용은 환경 변수를 사용하여 인증 토큰 전달을 참조합니다.

    CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text`
  2. 다음 명령을 실행하여 CodeArtifact 리포지토리의 엔드포인트를 가져옵니다. 리포지토리 엔드포인트는 패키지를 설치하거나 게시하도록 npm을 리포지토리로 이동하는 데 사용됩니다.

    • my_domain을 도메인 이름으로 바꾸십시오. CodeArtifact

    • 111122223333을 도메인 소유자의 AWS 계정 ID로 바꾸십시오. 소유한 도메인의 리포지토리에 액세스하는 경우 --domain-owner를 포함하지 않아도 됩니다. 자세한 정보는 크로스 계정 도메인을 참조하세요.

    • my_repo를 저장소 이름으로 바꾸십시오. CodeArtifact

    aws codeartifact get-repository-endpoint --domain my_domain --domain-owner 111122223333 --repository my_repo --format npm

    다음 URL은 리포지토리 엔드포인트의 예입니다.

    https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/npm/my_repo/
    중요

    레지스트리 URL은 슬래시(/)로 끝나야 합니다. 그렇지 않으면 리포지토리에 연결할 수 없습니다.

  3. npm config set명령을 사용하여 레지스트리를 저장소로 설정합니다. CodeArtifact URL을 이전 단계의 리포지토리 엔드포인트 URL로 바꿉니다.

    npm config set registry=https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/npm/my_repo/
  4. npm config set 명령을 실행하여 npm 구성에 인증 토큰을 추가합니다.

    npm config set //my_domain-111122223333.d.codeartifact.region.amazonaws.com/npm/my_repo/:_authToken=$CODEARTIFACT_AUTH_TOKEN

    npm 6 이하의 경우: npm이 GET 요청의 경우에도 항상 인증 토큰을 전달하도록 하려면 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 레지스트리 엔드포인트를 설정하고, 인증 토큰을 추가하고, 구성한 후의 예제 .npmrc 파일입니다. always-auth

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 모듈 생성 섹션을 참조하세요. 에서 지원하는 CodeArtifact npm 명령 목록은 npm 명령 지원을 참조하십시오.

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 레지스트리로 다시 변경

로 npm을 구성하면 npm 레지스트리가 지정된 저장소로 CodeArtifact 설정됩니다. CodeArtifact 연결이 완료되면 다음 명령을 실행하여 npm 레지스트리를 기본 레지스트리로 다시 설정할 수 있습니다. CodeArtifact

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