

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 上游儲存庫優先順序
<a name="repo-upstream-search-order"></a>

 當您從具有一或多個上游儲存庫的儲存庫請求套件版本時，其優先順序會對應至呼叫 `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`庫有三個上游儲存庫。上游儲存庫的優先順序為 `upstream-1`、`upstream-2`、`upstream-3`。

![\[顯示 my_repo 與 3 個上游儲存庫的簡單上游儲存庫圖表。\]](http://docs.aws.amazon.com/zh_tw/codeartifact/latest/ug/images/upstream-diagram-simple.png)


 中的套件版本請求會依下列順序`my_repo`搜尋儲存庫，直到找到為止，或直到 HTTP 404 `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`。如果儲存庫`A`有上游儲存庫， 中套件版本的請求會`my_repo`先在 中尋找`my_repo`，再於 中尋找`A`，然後於 的上游儲存庫`A`中尋找，以此類推。

 在下圖中，儲存`my_repo`庫包含上游儲存庫。上游儲存庫`A`有兩個上游儲存庫，並`D`有一個上游儲存庫。圖表中相同層級的上游儲存庫會以優先順序從左到右顯示 （儲存庫`A`的優先順序高於儲存庫 `B`，而儲存庫`C`的優先順序高於儲存庫 `D`)。

![\[更複雜的上游儲存庫圖表，其中包含 2 個上游儲存庫 A 和 B，以及其他上游儲存庫。\]](http://docs.aws.amazon.com/zh_tw/codeartifact/latest/ug/images/upstream-diagram-complex.png)


在此範例中， 中套件版本的請求會依下列順序在儲存庫中`my_repo`尋找，直到找到為止，或直到套件管理員傳回 HTTP 404 `Not Found`回應給用戶端為止：

1.  `my_repo` 

1.  `A` 

1.  `C` 

1.  `D` 

1.  `E` 

1.  `B` 