上游存放庫優先順序 - CodeArtifact

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

上游存放庫優先順序

當您從具有一或多個上游存放庫的存放庫要求套件版本時,其優先順序會與呼叫create-repositoryupdate-repository指令時列出的順序相對應。找到請求的軟件包版本時,即使未搜索所有上游存儲庫,搜索也會停止。如需詳細資訊,請參閱 新增或移除上游儲存庫 (AWS 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": [] } }

簡單的優先順序示例

在下圖中,my_repo存放庫有三個上游存放庫。上游儲存庫的優先順序為upstream-1upstream-2upstream-3

簡單的上游存儲庫圖顯示 my_repo 與 3 個上游存儲庫。

中的套件版本要求會依下列順序my_repo搜尋儲存庫,直到找到儲存庫為止,或將 HTTP 404 回Not Found應傳回給用戶端為止:

  1. my_repo

  2. upstream-1

  3. upstream-2

  4. upstream-3

如果找到套件版本,即使未在所有上游儲存庫中查看,搜尋也會停止。例如,如果在中找到套件版本upstream-1,搜尋就會停止,而 CodeArtifact 不會查看upstream-2upstream-3

當您使用 AWS CLI 指令列出中list-package-versions的套件版本時my_repo,它只會在中尋找my_repo。它不會列出上游儲存庫中的套件版本。

複雜優先順序範例

如果上游存放庫有自己的上游存放庫,則在移至下一個上游存放庫之前,會使用相同的邏輯來尋找套件版本。例如,假設您的my_repo存放庫有兩個上游儲存庫,以AB. 如果存放庫A具有上游存放庫,則my_repo首先會搜尋套件版本的要求A,然後在的上游儲存庫中尋找A,依此類推。my_repo

在下圖中,my_repo存放庫包含上游存放庫。上游存儲庫A有兩個上游存儲庫,並D有一個上游存儲庫。圖中相同級別的上游存儲庫以其優先順序從左到右顯示(存A儲庫的優先級順序高於存儲庫B,並C且存儲庫的優先級順序高於存儲庫D)。

一個更複雜的上游存儲庫圖,其中包含 2 個上游存儲庫 A 和 B 以及其他上游存儲庫。

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

  1. my_repo

  2. A

  3. C

  4. D

  5. E

  6. B