本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
上游存储库优先顺序
当您从包含一个或多个上游存储库的存储库请求程序包版本时,它们的优先级与调用 create-repository
或 update-repository
命令时列出的顺序相对应。找到请求的程序包版本后,即使该搜索并未搜索所有上游存储库,搜索也会停止。有关更多信息,请参阅 添加或删除上游存储库 (AWS CLI)。
使用 describe-repository
命令来查看优先顺序。
aws codeartifact describe-repository --repository
my_repo
--domainmy_domain
--domain-owner111122223333
结果可能如下所示。结果显示,上游存储库的优先级是 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": [] } }
简单的优先顺序示例
在下图中,my_repo
存储库有三个上游存储库。上游存储库的优先顺序为 upstream-1
、upstream-2
、upstream-3
。
![简单的上游存储库图,其中显示了包含 3 个上游存储库的 my_repo。](images/upstream-diagram-simple.png)
对 my_repo
中的程序包版本发出的请求会按以下顺序搜索存储库,直到找到该版本,或直至向客户端返回 HTTP 404 Not Found
响应:
-
my_repo
-
upstream-1
-
upstream-2
-
upstream-3
如果找到了程序包版本,则即使搜索并未在所有上游存储库中查找,搜索也会停止。例如,如果在中找到了软件包版本upstream-1
,则搜索将停止, CodeArtifact 不会在upstream-2
或中查找upstream-3
。
当您使用 AWS CLI 命令列list-package-versions
出中的软件包版本时my_repo
,它只会在中查找my_repo
。该命令不会列出上游存储库中的程序包版本。
复杂优先顺序示例
如果上游存储库有自己的上游存储库,则在移动到下一个上游存储库之前,将使用相同的逻辑来查找程序包版本。例如,假设您的 my_repo
存储库有两个上游存储库,A
和 B
。如果存储库 A
有上游存储库,则对 my_repo
中的程序包版本的请求会首先在 my_repo
中查找,其次在 A
中查找,然后在 A
的上游存储库中查找,依此类推。
在下图中,my_repo
存储库包含上游存储库。上游存储库 A
有两个上游存储库,D
有一个上游存储库。图中同一级别的上游存储库按其优先顺序从左到右显示(存储库 A
的优先顺序高于存储库 B
,存储库 C
的优先级顺序高于存储库 D
)。
![更复杂的上游存储库图,包含 2 个上游存储库 A 和 B 以及其他上游存储库。](images/upstream-diagram-complex.png)
在此示例中,对 my_repo
中的程序包版本发出的请求会按以下顺序在存储库中查找,直到找到该版本,或者直至程序包管理器向客户端返回 HTTP 404 Not Found
响应:
-
my_repo
-
A
-
C
-
D
-
E
-
B