アップストリームリポジトリを持つパッケージバージョンのリクエスト - Amazon CodeCatalyst

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

アップストリームリポジトリを持つパッケージバージョンのリクエスト

次の例は、パッケージマネージャーがアップストリームリポジトリを持つパッケージリポジトリからパッケージを CodeCatalyst リクエストする場合のシナリオを示しています。

この例では、 などのパッケージマネージャーは、複数のアップストリームリポジトリを持つ という名前のパッケージリポジトリからパッケージバージョンdownstreamnpmリクエストします。パッケージがリクエストされると、次のことが発生する可能性があります。

  • リクエストされたパッケージバージョンがdownstreamに含まれる場合、クライアントにリターンされます。

  • にリクエストされたパッケージバージョンが含まれdownstreamていない場合、 は設定された検索順序で downstreamのアップストリームリポジトリでそのバージョン CodeCatalyst を検索します。パッケージバージョンが見つかると、そのバージョンへのリファレンスがdownstreamにコピーされます、そしてパッケージのバージョンがクライアントに返されます。

  • downstream またはアップストリームリポジトリにパッケージバージョンが含まれていない場合、404 HTTP Not Foundレスポンスがクライアントに返されます。

1 つのリポジトリに許可される直接アップストリームリポジトリの最大数は 10 です。パッケージバージョンがリクエストされたときに で CodeCatalyst 検索されるリポジトリの最大数は 25 です。

アップストリームリポジトリからのパッケージの保持

リクエストされたパッケージバージョンがアップストリームリポジトリで見つかった場合、そのバージョンへの参照は保持され、リクエストしたリポジトリで常に使用できます。これにより、アップストリームリポジトリが予期せず停止した場合、パッケージにアクセスできます。保持されたパッケージバージョンは、次のいずれの影響も受けません:

  • アップストリームリポジトリの削除。

  • アップストリームリポジトリのダウンストリームリポジトリからの切断。

  • アップストリームリポジトリからのパッケージバージョンの削除。

  • アップストリームリポジトリのパッケージバージョンの編集(例えば、新しいアセットを追加するなど)。

アップストリームリレーションシップによるパッケージの取得

CodeCatalyst は、アップストリームリポジトリと呼ばれる複数のリンクされたリポジトリを介してパッケージを取得できます。 CodeCatalyst パッケージリポジトリにゲートウェイリポジトリへのアップストリーム接続を持つ別の CodeCatalyst パッケージリポジトリへのアップストリーム接続がある場合、アップストリームリポジトリにないパッケージのリクエストは外部リポジトリからコピーされます。例えば、 という名前のリポジトリrepo-Aがゲートウェイリポジトリ へのアップストリーム接続を持つとしますnpm-public-registry-gatewaynpm-public-registry-gatewayはパブリックパッケージリポジトリ へのアップストリーム接続を持つとしますhttps://npmjs.com

簡略な3つの連結したリポジトリを示すアップストリームリポジトリの図。

repo-A リポジトリを使用するように がnpm設定されている場合、 を実行すると、 から https://npmjs.comへのパッケージのコピーnpm installが開始されますnpm-public-registry-gateway。インストールされているバージョンもrepo-Aプルされます。次の例では、lodashがインストールされます。

$ npm config get registry https://packages.region.codecatalyst.aws/npm/space-name/proj-name/repo-name/ $ npm install lodash + lodash@4.17.20 added 1 package from 2 contributors in 6.933s

の実行後npm install、 には最新バージョン (lodash 4.17.20) のみrepo-Aが含まれます。これは、 npmから によって取得されたバージョンであるためですrepo-A

npm-public-registry-gateway には への外部アップストリーム接続があるためhttps://npmjs.com、 からインポートされたすべてのパッケージバージョンは にhttps://npmjs.com保存されますnpm-public-registry-gateway。これらのパッケージバージョンは、 につながるアップストリーム接続を持つダウンストリームリポジトリによって取得された可能性がありますnpm-public-registry-gateway

の内容は、 からhttps://npmjs.comインポートされたすべてのパッケージとパッケージバージョンを経時的に表示する方法npm-public-registry-gatewayを提供します。

中間リポジトリでのパッケージの保持

CodeCatalyst では、アップストリームリポジトリを連鎖できます。例えば、 repo-Aはアップストリームリポジトリrepo-Bとして、 repo-Bはアップストリームリポジトリrepo-Cとして使用できます。この設定により、repo-Brepo-Cにあるパッケージバージョンがrepo-Aから入手可能になります。

簡略な3 つの連結したリポジトリを示すアップストリームリポジトリの図。

パッケージマネージャーがリポジトリに接続repo-Aし、リポジトリ からパッケージバージョンを取得するとrepo-C、パッケージバージョンはリポジトリ に保持されませんrepo-B。パッケージバージョンは、最も遠いダウンストリームリポジトリにのみ保持されます。この例では ですrepo-A。中間リポジトリには保持されません。これは、長いチェーンにも当てはまります。例えば、、、repo-Arepo-Brepo-Cおよび の 4 つのリポジトリがありrepo-Drepo-A からパッケージバージョンを取得するために接続されているパッケージマネージャーがある場合、パッケージバージョンは に保持されますrepo-Arepo-Drepo-Bまたは には保持されませんrepo-C

パッケージの保持動作は、パブリックパッケージリポジトリからパッケージバージョンをプルする場合も同様です。ただし、パッケージバージョンは常にパブリックリポジトリへの直接アップストリーム接続を持つゲートウェイリポジトリに保持されます。例えば、 repo-Aはアップストリームリポジトリrepo-Bとして を持ちます。 repo-B はアップストリームリポジトリnpm-public-registry-gatewayとして を持ち、パブリックリポジトリ npmjs.com へのアップストリーム接続があります。以下の図を参照してください。

npmjs.com への外部アップストリーム接続と連鎖された 3 つのリポジトリを示すアップストリームリポジトリ図。

に接続されたパッケージマネージャーが特定のパッケージバージョン、例えば lodash 4.17.20repo-Aリクエストし、そのパッケージバージョンが 3 つのリポジトリのいずれにも存在しない場合、npmjs.com から取得されます。lodash 4.17.20 がフェッチされると、最も遠いダウンストリームリポジトリrepo-Aとして に保持され、パブリック外部リポジトリ npm-public-registry-gateway npmjs.com へのアップストリーム接続があります。lodash 4.17.20 は中間リポジトリrepo-Bであるため、 には保持されません。