將 CodeArtifact 存儲庫 Connect 到公共存儲庫 - CodeArtifact

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

將 CodeArtifact 存儲庫 Connect 到公共存儲庫

您可以在 CodeArtifact 存儲庫和外部公共存儲庫(例如 https://npmjs.comMaven 中央存儲庫)之間添加外部連接。然後,當您從 CodeArtifact 存放庫中尚未存在的存放庫要求套件時,可以從外部連線擷取套件。這樣就可以消耗應用程序使用的開源依賴關係。

在中 CodeArtifact,使用外部連線的預期方法是每個網域都有一個存放庫,且具有與指定公用存放庫的外部連線。例如,如果您要連接到 npmjs.com,請在域中配置一個與 npmjs.com 的外部連接的存儲庫,並使用其上游配置所有其他存儲庫。這樣,所有存儲庫都可以使用已經從 npmjs.com 獲取的軟件包,而不是再次獲取並存儲它們。

Connect 到外部存儲庫(控制台)

當您使用控制台將連接添加到外部存儲庫時,將發生以下情況:

  1. 如果外部存-store放庫不存在,則會在您的 CodeArtifact 網域中建立外部儲存庫的儲存庫。這些-store儲存庫在您的儲存庫與外部儲存庫之間的行為是中繼儲存庫,可讓您連線至多個外部存放庫。

  2. 適當的-store存放庫會新增為您的儲存庫的上游。

下列清單包含中的每個-store存放庫以 CodeArtifact 及它們連線到的相應外部存放庫。

  1. cargo-store被連接到瘋狂的 .io。

  2. clojars-store連接到 Clojar 存儲庫。

  3. commonsware-store已連接到 CommonsWare 安卓版本庫。

  4. google-android-store連接到谷歌安卓系統。

  5. gradle-plugins-store連接到搖籃插件。

  6. maven-central-store連接到 Maven 中央存儲庫。

  7. npm-store已連接到網站。

  8. nuget-store已連線至核心組織。

  9. pypi-store連接到 Python 包裝管理局。

  10. rubygems-store已連接到 RubyGems .org。

連線至外部存放庫 (主控台)
  1. 請在以下位置開啟 AWS CodeArtifact 主控台。 https://console.aws.amazon.com/codesuite/codeartifact/home

  2. 在瀏覽窗格中,選擇 [網域],然後選擇包含存放庫的網域名稱。

  3. 選擇儲存庫的名稱。

  4. 選擇編輯

  5. 上游存放庫中,選擇「關聯上游存放庫」,然後新增作為上游連接的適當-store存放庫。

  6. 選擇更新儲存庫

-store存放庫新增為上游儲存庫之後,連接至您儲存 CodeArtifact 庫的套件管理員可以從相應的外部儲存庫擷取套件。

Connect 至外部存放庫 (CLI)

您可以使用將 CodeArtifact 存放庫直接新增外部連線至存放庫,將存放庫連線至外部存放庫。 AWS CLI 這可讓連線至儲 CodeArtifact 存區域或其任何下游儲存區域的使用者從設定的外部儲存區域擷取套裝程式。每個 CodeArtifact 儲存庫只能有一個外部連線。

建議每個域有一個存儲庫,並與給定的公共存儲庫進行外部連接。要將其他存儲庫連接到公共存儲庫,請將具有外部連接的存儲庫作為其上游添加。如果您或網域中的其他人已經在主控台中設定了外部連線,則您的網域可能已經有一個-store存放庫,其中包含與您要連線的公用存放庫的外部連線。如需有關-store儲存庫和與主控台連線的詳細資訊,請參閱Connect 到外部存儲庫(控制台)

將外部連線新增至存 CodeArtifact 放庫 (CLI)
  • associate-external-connection於新增外部連線。下列範例會將儲存庫連線至 NPM 公用登錄 npmjs.com。如需受支援的外部儲存庫清單,請參閱支援的外部連線儲存

    aws codeartifact associate-external-connection --external-connection public:npmjs \ --domain my_domain --domain-owner 111122223333 --repository my_repo

    輸出範例:

    { "repository": { "name": my_repo "administratorAccount": "123456789012", "domainName": "my_domain", "domainOwner": "111122223333", "arn": "arn:aws:codeartifact:us-west-2:111122223333:repository/my_domain/my_repo", "description": "A description of my_repo", "upstreams": [], "externalConnections": [ { "externalConnectionName": "public:npmjs", "packageFormat": "npm", "status": "AVAILABLE" } ] } }

新增外部連線之後,請參閱以從外部連線要求套件取得有關透過外部連線從外部存放庫要求套件的資訊。

支援的外部連線儲存

CodeArtifact 支援與下列公用儲存庫的外部連線。若要使用 CodeArtifact CLI 指定外部連線,請在執行associate-external-connection命令時使用--external-connection參數「名稱」(Name) 欄中的值。

儲存庫類型 描述 名稱
Maven 罐子存儲庫 public:maven-clojars
Maven CommonsWare 安卓儲存庫 public:maven-commonsware
Maven 谷歌安卓儲存庫 public:maven-googleandroid
Maven 搖籃插件庫 public:maven-gradleplugins
Maven Maven 中央 public:maven-central
NPM npm 公共註冊表 public:npmjs
NuGet NuGet 畫廊 public:nuget-org
Python Python Package 索引 public:pypi
Ruby RubyGems.org public:ruby-gems-org
Rust 克拉特斯大作战 public:crates-io

移除外部連線 (CLI)

若要移除使用中的associate-external-connection指令加入的外部連接 AWS CLI,請使用disassociate-external-connection

aws codeartifact disassociate-external-connection --external-connection public:npmjs \ --domain my_domain --domain-owner 111122223333 --repository my_repo

輸出範例:

{ "repository": { "name": my_repo "administratorAccount": "123456789012", "domainName": "my_domain", "domainOwner": "111122223333", "arn": "arn:aws:codeartifact:us-west-2:111122223333:repository/my_domain/my_repo", "description": "A description of my_repo", "upstreams": [], "externalConnections": [] } }