CodeArtifact リポジトリをパブリックリポジトリに接続する - CodeArtifact

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

CodeArtifact リポジトリをパブリックリポジトリに接続する

CodeArtifact リポジトリと、https://npmjs.comMaven Central リポジトリ などの外部パブリックリポジトリとの間に外部接続を追加できます。次に、 CodeArtifact リポジトリにまだ存在しないパッケージをリポジトリからリクエストすると、パッケージを外部接続から取得できます。これにより、アプリケーションで使用されるオープンソースの依存関係を使用できるようになります。

では CodeArtifact、外部接続を使用する目的は、特定のパブリックリポジトリへの外部接続を持つドメインごとに 1 つのリポジトリを持つことです。例えば、npmjs.com に接続する場合、ドメイン内の 1 つのリポジトリを npmjs.com への外部接続で設定し、他のすべてのリポジトリをそのアップストリームに設定します。こうすることで、npmjs.com から取得済みのパッケージを再度取得し保存することなく、すべてのリポジトリがパッケージを利用できます。

外部リポジトリに接続する (コンソール)

コンソールを使用して外部リポジトリへの接続を追加すると、以下のことが起こります。

  1. 外部-storeリポジトリのリポジトリがまだ存在しない場合は、 CodeArtifact ドメインに作成されます。これらの -store リポジトリは、リポジトリと外部リポジトリの中間リポジトリとして機能し、複数の外部リポジトリに接続できます。

  2. 適切な -store リポジトリがリポジトリのアップストリームとして追加されます。

次のリストには、 の各-storeリポジトリ CodeArtifact と、それらが接続するそれぞれの外部リポジトリが含まれています。

  1. cargo-store は crates.io に接続されています。

  2. clojars-store は、Clojars リポジトリに接続されます。

  3. commonsware-store は CommonsWare Android リポジトリに接続されています。

  4. google-android-store は、Google Android に接続されます。

  5. gradle-plugins-store は、Gradle プラグインに接続されます。

  6. maven-central-store は、Maven Central リポジトリに接続されます。

  7. npm-store は、npmjs.com に接続されます。

  8. nuget-store は、nuget.org に接続されます。

  9. pypi-store は、Python Packaging Authority に接続されます。

  10. rubygems-store は RubyGems.org に接続されています。

外部リポジトリに接続するには (コンソール)
  1. https://console.aws.amazon.com/codesuite/codeartifact/home で AWS CodeArtifact コンソールを開きます。

  2. ナビゲーションペインで、Domains(ドメイン) をクリックし、リポジトリを含むドメイン名を選択します。

  3. リポジトリの名前を選択します。

  4. [Edit] を選択します。

  5. [アップストリームリポジトリ][アップストリームリポジトリを関連付け] を選択し、アップストリームとして接続されている適切な -store リポジトリを追加します。

  6. [リポジトリを更新]をクリックします。

-store リポジトリがアップストリームリポジトリとして追加されると、 CodeArtifact リポジトリに接続されたパッケージマネージャーは、それぞれの外部リポジトリからパッケージを取得できます。

外部リポジトリに接続する (CLI)

を使用して AWS CLI 、 CodeArtifact 外部接続をリポジトリに直接追加することで、リポジトリを外部リポジトリに接続できます。これにより、 CodeArtifact リポジトリまたはそのダウンストリームリポジトリに接続されているユーザーは、設定された外部リポジトリからパッケージを取得できます。各 CodeArtifact リポジトリは、外部接続を 1 つだけ持つことができます。

特定のパブリックリポジトリへの外部接続については、ドメインごとに 1 つのリポジトリを用意することをお勧めします。他のリポジトリをパブリックリポジトリに接続するには、外部接続のリポジトリをアップストリームとして追加します。あなたやドメイン内の他のユーザーがコンソールですでに外部接続を設定している場合、そのドメインには、接続するパブリックリポジトリへの外部接続を備えた -store リポジトリがすでにある可能性があります。-store リポジトリとコンソールでの接続の詳細については、「外部リポジトリに接続する (コンソール)」を参照してください。

CodeArtifact リポジトリに外部接続を追加するには (CLI)
  • associate-external-connection を使用して、外部接続を追加します。次の例では、リポジトリを npm パブリックレジストリ (npmjs.com) に接続します。サポートされている外部リポジトリのリストについては、「サポートされている外部接続リポジトリ」を参照してください。

    aws codeartifact associate-external-connection --external-connection public:npmjs \ --domain my_domain --domain-owner 111122223333 --repository my_repo

    出力例:

    { "repository": { "name": my_repo "administratorAccount": "123456789012", "domainName": "my_domain", "domainOwner": "111122223333", "arn": "arn:aws:codeartifact:us-west-2:111122223333:repository/my_domain/my_repo", "description": "A description of my_repo", "upstreams": [], "externalConnections": [ { "externalConnectionName": "public:npmjs", "packageFormat": "npm", "status": "AVAILABLE" } ] } }

外部接続を追加した後に、外部接続を使用して外部リポジトリにパッケージをリクエストする方法については、「外部接続からのパッケージのリクエスト」を参照してください。

サポートされている外部接続リポジトリ

CodeArtifact は、次のパブリックリポジトリへの外部接続をサポートします。 CodeArtifact CLI を使用して外部接続を指定するには、 associate-external-connection コマンドを実行するときに --external-connectionパラメータの名前列の値を使用します。

リポジトリタイプ 説明 [Name] (名前)
Maven Clojars リポジトリ public:maven-clojars
Maven CommonsWare Android リポジトリ public:maven-commonsware
Maven Google Android リポジトリ public:maven-googleandroid
Maven (メイヴン) Gradle プラグインリポジトリ public:maven-gradleplugins
Maven (メイヴン) Maven Central public:maven-central
npm npm 公開レジストリ public:npmjs
NuGet NuGet ギャラリー public:nuget-org
Python (パイソン) Python パッケージインデックス public:pypi
Ruby RubyGems.org public:ruby-gems-org
Rust Crates.io public:crates-io

外部接続を削除する (CLI)

associate-external-connection コマンドを使用して追加された外部接続を削除するには AWS CLI、 を使用しますdisassociate-external-connection

aws codeartifact disassociate-external-connection --external-connection public:npmjs \ --domain my_domain --domain-owner 111122223333 --repository my_repo

出力例:

{ "repository": { "name": my_repo "administratorAccount": "123456789012", "domainName": "my_domain", "domainOwner": "111122223333", "arn": "arn:aws:codeartifact:us-west-2:111122223333:repository/my_domain/my_repo", "description": "A description of my_repo", "upstreams": [], "externalConnections": [] } }