翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
で npm を設定して使用する CodeArtifact
でリポジトリを作成したら CodeArtifact、npm クライアントを使用してパッケージをインストールして公開できます。リポジトリエンドポイントと認可トークンで npm を設定するための推奨される方法は、aws codeartifact login
コマンドの使用です。npm を手動で設定することもできます。
目次
login コマンドを使用した 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 ファイルに次の変更を加えます:
-
認証情報 CodeArtifact AWS を使用して から認証トークンを取得した後、認証トークンを追加します。
-
npm レジストリを、
--repository
オプションで指定されたリポジトリに設定します。 -
npm 6 以下の場合:
"always-auth=true"
を追加すると、認可トークンがすべての npm コマンドに対して送信されます。
login
を呼び出した後のデフォルトの認可時間は 12 時間であり、トークンを定期的に更新するには、login
を呼び出す必要があります。login
コマンドで作成される認可トークンの詳細については、「loginコマンドで作成されたトークン」を参照してください。
login コマンドを使用せずに npm を設定する
npm 設定を手動で更新することで、 aws codeartifact login
コマンドを使用せずに CodeArtifact リポジトリで npm を設定できます。
login コマンドを使用せずに 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
/npm config set
コマンドを使用して、npm 設定に認可トークンを追加します。npm config set //
my_domain
-111122223333
.d.codeartifact.region
.amazonaws.com/npm/my_repo
/:_authToken=$CODEARTIFACT_AUTH_TOKENnpm 6 以前の場合: npm が常に認証トークンを に渡すようにするには CodeArtifact、
GET
リクエストに対してもalways-auth
設定変数を に設定しますnpm config set
。npm config set //
my_domain
-111122223333
.d.codeartifact.region
.amazonaws.com/npm/my_repo
/:always-auth=true
構成ファイルの例 (.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 コマンドを実行できます。パッケージがリポジトリまたはその上流のリポジトリの1つに存在すると仮定すると、パッケージを 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 レジストリに戻す
で npm を設定すると、npm レジストリが指定された CodeArtifact リポジトリに CodeArtifact 設定されます。への接続が完了したら、次のコマンドを実行して npm レジストリをデフォルトのレジストリに戻すことができます CodeArtifact。
npm config set registry https://registry.npmjs.com/
npm 8.x 以降でのインストールが遅い場合のトラブルシューティング
npm バージョン8.x 以降には既知の問題があります。パッケージリポジトリに対してリクエストが行われ、リポジトリがアセットを直接ストリーミングする代わりにクライアントを Amazon S3 にリダイレクトすると、npm クライアントが依存関係ごとに数分間ハングアップする可能性があります。
CodeArtifact リポジトリは常にリクエストを Amazon S3 にリダイレクトするように設計されているため、この問題が発生することがあります。これにより、npm のインストール時間が長くなるため、ビルド時間が長くなります。この動作が発生すると、進行状況バーが数分間表示されます。
この問題を回避するには、次の例のように npm
CLI コマンドで --no-progress
または progress=false
フラグを使用します。
npm install lodash --no-progress