

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

# CodeArtifact リポジトリをパブリックリポジトリに接続する
<a name="external-connection"></a>

CodeArtifact リポジトリと、[https://npmjs.com](https://npmjs.com) または [[Maven Central リポジトリ]](https://repo.maven.apache.org/maven2/) のような外部のパブリックリポジトリ間の外部接続を追加できます。その後、リポジトリにまだ存在しない CodeArtifact リポジトリからパッケージをリクエストすると、そのパッケージを外部接続から取得できます。これにより、アプリケーションで使用されるオープンソースの依存関係を使用できるようになります。

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

**Topics**
+ [外部リポジトリに接続する (コンソール)](#adding-an-external-connection-console)
+ [外部リポジトリに接続する (CLI)](#adding-an-external-connection)
+ [サポートされている外部接続リポジトリ](#supported-public-repositories)
+ [外部接続を削除する (CLI)](#removing-an-external-connection)

## 外部リポジトリに接続する (コンソール)
<a name="adding-an-external-connection-console"></a>

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

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

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

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

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

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

1. `commonsware-store` は、CommonsWare Android リポジトリに接続されます。

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

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

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

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

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

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

1. `rubygems-store` は、RubyGems.org に接続されます。

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

1. [https://console.aws.amazon.com/codesuite/codeartifact/home](https://console.aws.amazon.com/codesuite/codeartifact/home) で AWS CodeArtifact コンソールを開きます。

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

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

1.  [**Edit**] を選択します。

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

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

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

## 外部リポジトリに接続する (CLI)
<a name="adding-an-external-connection"></a>

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

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

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

  ```
  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"
              }
          ]
      }
  }
  ```

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

## サポートされている外部接続リポジトリ
<a name="supported-public-repositories"></a>

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


| リポジトリタイプ | 説明 | 名前 | 
| --- | --- | --- | 
| 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)
<a name="removing-an-external-connection"></a>

で `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": []
    }
}
```