本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
以下是使用時需要了解的一些概念和術語 CodeArtifact。
資產
資產是存儲在 CodeArtifact 與一個包版本,如 NPM .tgz
文件或 Maven POM 和 JAR 文件相關聯的單個文件。
網域
儲存庫會彙總到稱為網域的較高層級實體。所有套件資產和中繼資料都儲存在網域中,但它們會透過儲存庫使用。給定的包資產(例如 Maven JAR 文件)在每個域中存儲一次,無論它存在多少個存儲庫。網域中的所有資產和中繼資料都會使用 () 中 AWS Key Management Service 儲存的相同 AWS KMS key (KMS 金鑰AWS KMS) 加密。
每個存放庫都是單一網域的成員,無法移至不同的網域。
使用網域,您可以在多個儲存庫中套用組織原則。使用這種方法,您可以決定哪些帳戶可以存取網域中的儲存庫,以及可以使用哪些公用存放庫做為套件的來源。
雖然一個組織可以有多個網域,但我們建議使用包含所有已發行成品的單一生產網域。如此一來,團隊就可以在整個組織中尋找並共用套件。
儲存庫
CodeArtifact 儲存庫包含一組套件版本,每個套件版本都會對應至一組資產。儲存庫是多層的 — 單一儲存庫可以包含任何受支援類型的套件。每個存儲庫公開端點,用於使用像 nuget CLI,npm CLI,Maven CLI(mvn)和 pip 等工具獲取和發布包。每個網域最多可以建立 1,000 個儲存庫。
套件
套件是解決相依性和安裝軟體所需的軟體套件和中繼資料。在中 CodeArtifact,套件包含套件名稱、選用的命名空間 (例如 @types
in) @types/node
、一組套件版本,以及封裝層級中繼資料 (例如 npm 標籤)。
AWS CodeArtifact 支持貨物,通用,Maven,NPM,PyPI NuGet,紅寶石,斯威夫特包格式。
Package 群組
P@@ ackage 件群組可用來將組態套用至符合使用套件格式、套件命名空間和套件名稱的已定義模式的多個套件。您可以使用套件群組,更方便地為多個套件設定套件原始碼控制項。Package 來源控制項可用來封鎖或允許擷取或發佈新套件版本,以保護使用者免於遭受稱為相依性替代攻擊的惡意動作。
Package 命名空間
某些套件格式支援階層式套件名稱,將套件組織成邏輯群組,並協助避免名稱衝突。例如,npm 支持作用域。如需詳細資訊,請參閱 npm 範圍文件@types/node
具有的範圍@types
和名稱node
。@types
範圍內還有許多其他套件名稱。在中 CodeArtifact,範圍(「類型」)被稱為包命名空間和名稱(「節點」)被稱為包名稱。對於 Maven 包,包命名空間對應於 Maven 的組 ID。Maven 套件org.apache.logging.log4j:log4j
具有的群組 ID (套件命名空間) org.apache.logging.log4j
和文件 ID (套件名稱)。log4j
對於泛型套件,需要命名空間。某些套件格式 (例如 PyPI) 不支援階層式名稱,其概念類似於 npm 範圍或 Maven 群組 ID。如果沒有分組軟件包名稱的方法,避免名稱衝突可能會更加困難。
套件版本
套件版本可識別套件的特定版本,例如@types/node 12.6.9
。不同套件格式的版本號碼格式和語意會有所不同。例如,npm 套件版本必須符合語意版本化規格
Package 版本修訂
套件版本修訂是一個字串,可識別套件版本的一組特定資產和中繼資料。每次更新套件版本時,都會建立新的封裝版本修訂。例如,您可以發布 Python 包版本的源代碼發行歸檔(sdist),然後將包含編譯代碼的 Python 輪子添加到相同的版本。當您發佈操控盤時,會建立新的封裝版本修訂版本。
上游儲存庫
如果可以從下游存放庫的存放庫端點存取其中的套件版本,則其中一個存放庫是另一個存放庫的上游。這種方法從客戶端的角度有效地合併兩個存儲庫的內容。使用 CodeArtifact,您可以在兩個存儲庫之間創建上游關係。