

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

# アップストリームリポジトリの優先順位
<a name="repo-upstream-search-order"></a>

 1つ以上のアップストリームリポジトリを持つリポジトリからパッケージバージョンをリクエストする場合、その優先順位は、`create-repository`または`update-repository`コマンドを実行する際にリストアップされた順番に対応します。要求されたパッケージバージョンが見つかると、すべてのアップストリームリポジトリを検索する前に検索は停止します。詳細については、「[アップストリームリポジトリを追加または削除する (AWS CLI)](repo-upstream-add.md#repo-upstream-add-cli)」を参照してください。

 優先順位を表示するには `describe-repository`コマンドを実行します。

```
aws codeartifact describe-repository --repository {{my_repo}} --domain {{my_domain}} --domain-owner {{111122223333}}
```

 結果は次のとおりになります。これは、アップストリームリポジトリの優先順位が、まず`upstream-1`、次が `upstream-2`、最後が`upstream-3`であることを示しています。

```
{
    "repository": {
        "name": "{{my_repo}}",
        "administratorAccount": "{{123456789012}}",
        "domainName": "{{my_domain}}",
        "domainOwner": "{{111122223333}}",
        "arn": "arn:aws:codeartifact:{{us-east-1}}:{{111122223333}}:repository/{{my_domain}}/{{my_repo}}",
        "description": "My new repository",
        "upstreams": [
            {
                "repositoryName": "{{upstream-1}}"
            },
            {
                "repositoryName": "{{upstream-2}}"
            },
            {
                "repositoryName": "{{upstream-3}}"
            }
        ],
        "externalConnections": []
    }
}
```

## 簡単な優先順位の例
<a name="upstream-priority-order-simple"></a>

 次の図では、`my_repo`リポジトリには 3 つのアップストリームリポジトリがあります。アップストリームリポジトリの優先順位は、`upstream-1`、`upstream-2`、`upstream-3`の順です。

![簡略な3つのアップストリームリポジトリを持つmy_repoを示すアップストリームリポジトリの図。](http://docs.aws.amazon.com/ja_jp/codeartifact/latest/ug/images/upstream-diagram-simple.png)


 `my_repo`でのパッケージバージョンのリクエストでは、それが見つかるか、またはHTTP404 `Not Found`レスポンスがクライアントに返されるまで、次の順序でリポジトリを検索します。

1.  `my_repo` 

1.  `upstream-1` 

1.  `upstream-2` 

1.  `upstream-3` 

パッケージバージョンが見つかると、すべてのアップストリームリポジトリでの検索が終了していなくても、検索は停止します。例えば、パッケージバージョンが `upstream-1` で見つかった場合、検索は停止し、CodeArtifact が `upstream-2` または `upstream-3` を検索することはありません。

 AWS CLI コマンドを使用して でパッケージバージョン`list-package-versions`を一覧表示する場合`my_repo`、 でのみ検索されます`my_repo`。アップストリームリポジトリのパッケージバージョンはリストアップされません。

## 複雑な優先順位の例
<a name="upstream-search-order-complex"></a>

 アップストリームリポジトリに独自のアップストリームリポジトリがある場合、次のアップストリームリポジトリに移動する前に、同じロジックを使用してパッケージバージョンを検索します。例えば、`my_repo`リポジトリには`A` と`B`の2つのアップストリームリポジトリがあるとします。リポジトリ`A`にアップストリームリポジトリがある場合、`my_repo`にあるパッケージバージョンのリクエストは、最初に`my_repo`、次に`A`を検索し、それから`A`のアップストリームリポジトリを検索する、というように続きます。

 次の図では、`my_repo`リポジトリにアップストリームリポジトリが含まれています。アップストリームリポジトリ`A`には、アップストリームリポジトリが2つあり、`D`にはアップストリームリポジトリが1つあります。図内の同じレベルにあるアップストリームリポジトリは、優先順位が左から右に表示されます。(リポジトリ`A`はリポジトリ`B`より優先順位が高く、リポジトリ`C`はリポジトリ`D`より優先順位が高い)。

![2 つのアップストリームリポジトリ A と B、および追加のアップストリームリポジトリを含む、より複雑なアップストリームリポジトリ図。](http://docs.aws.amazon.com/ja_jp/codeartifact/latest/ug/images/upstream-diagram-complex.png)


この例では、`my_repo` でのパッケージバージョンのリクエストで、それが見つかるか、または、パッケージマネージャーが HTTP404 `Not Found` レスポンスをクライアントに返すまで、次の順序でリポジトリを検索します。

1.  `my_repo` 

1.  `A` 

1.  `C` 

1.  `D` 

1.  `E` 

1.  `B` 