本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
上游存放庫優先順序
當您從具有一或多個上游存放庫的存放庫要求套件版本時,其優先順序會與呼叫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
。
![簡單的上游存儲庫圖顯示 my_repo 與 3 個上游存儲庫。](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
首先會搜尋套件版本的要求A
,然後在的上游儲存庫中尋找A
,依此類推。my_repo
在下圖中,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