AWS CodeArtifact 概念 - CodeArtifact

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

AWS CodeArtifact 概念

以下是使用時需要了解的一些概念和術語 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 支持貨物通用MavenNPMPyPI NuGet紅寶石斯威夫特包格式。

Package 群組

P@@ ackage 件群組可用來將組態套用至符合使用套件格式、套件命名空間和套件名稱的已定義模式的多個套件。您可以使用套件群組,更方便地為多個套件設定套件原始碼控制項。Package 來源控制項可用來封鎖或允許擷取或發佈新套件版本,以保護使用者免於遭受稱為相依性替代攻擊的惡意動作。

Package 命名空間

某些套件格式支援階層式套件名稱,將套件組織成邏輯群組,並協助避免名稱衝突。例如,npm 支持作用域。如需詳細資訊,請參閱 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 套件版本必須符合語意版本化規格。在中 CodeArtifact,套件版本包含版本識別碼、套件版本層級中繼資料以及一組資產。

Package 版本修訂

套件版本修訂是一個字串,可識別套件版本的一組特定資產和中繼資料。每次更新套件版本時,都會建立新的封裝版本修訂。例如,您可以發布 Python 包版本的源代碼發行歸檔(sdist),然後將包含編譯代碼的 Python 子添加到相同的版本。當您發佈操控盤時,會建立新的封裝版本修訂版本。

上游儲存庫

如果可以從下存放庫的存放庫端點存取其中的套件版本,則其中一個存放庫是另一個存放庫的上游。這種方法從客戶端的角度有效地合併兩個存儲庫的內容。使用 CodeArtifact,您可以在兩個存儲庫之間創建上游關係。