将 CodeArtifact 仓库连接到公共仓库 - CodeArtifact

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

将 CodeArtifact 仓库连接到公共仓库

你可以在 CodeArtifact 存储库和外部公共存储库(例如 https://npmjs.comMaven Centra l 存储库)之间添加外部连接。然后,当您从 CodeArtifact 存储库中请求一个尚不存在于存储库中的软件包时,可以从外部连接获取该软件包。这样就可以使用由应用程序所用的开源依赖项。

在中 CodeArtifact,使用外部连接的预期方法是为每个域设置一个存储库,并与给定的公共存储库建立外部连接。例如,如果要连接到 npmjs.com,请将域中的一个存储库配置为与 npmjs.com 建立外部连接,并将所有其他存储库配置为该存储库的上游存储库。这样,所有存储库都可以使用已经从 npmjs.com 提取的程序包,而不必再次提取和存储程序包。

连接到外部存储库(控制台)

使用控制台向外部存储库添加连接时,会发生以下情况:

  1. 如果您的域中尚不存在外部存储库,则将在您的 CodeArtifact 域中创建该存储库。-store这些 -store 存储库充当您的存储库和外部存储库之间的中间存储库,让您可以连接到多个外部存储库。

  2. 相应的 -store 存储库将作为上游存储库添加到您的存储库中。

以下列表包含中的每个-store存储库 CodeArtifact 及其连接的相应外部存储库。

  1. cargo-store已连接到 crates.io。

  2. clojars-store 连接到 Clojars 存储库。

  3. commonsware-store已连接到 CommonsWare 安卓存储库。

  4. google-android-store 连接到 Google Android。

  5. gradle-plugins-store 连接到 Gradle 插件。

  6. maven-central-store 连接到 Maven Central 存储库。

  7. npm-store 连接到 npmjs.com。

  8. nuget-store 连接到 nuget.org。

  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 库的包管理器可以从相应的外部存储库中获取软件包。

连接到外部存储库 (CLI)

您可以直接 AWS CLI 向 CodeArtifact 存储库添加外部连接,从而使用将存储库连接到外部存储库。这将允许连接到 CodeArtifact 存储库或其任何下游存储库的用户从配置的外部存储库中获取软件包。每个 CodeArtifact 存储库只能有一个外部连接。

建议每个域都有一个存储库与给定的公有存储库建立外部连接。要将其他存储库连接到公有存储库,请将具有外部连接的存储库作为其上游添加进来。如果您或域中的其他人已经在控制台中配置了外部连接,则您的域可能已经有一个 -store 存储库,该存储库与您要连接的公有存储库建立了外部连接。有关 -store 存储库以及与控制台连接的更多信息,请参阅连接到外部存储库(控制台)

向 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参数名称列中的值。

存储库类型 描述 名称
Maven Clojars 存储库 public:maven-clojars
Maven CommonsWare 安卓存储库 public:maven-commonsware
Maven Google Android 存储库 public:maven-googleandroid
Maven Gradle 插件存储库 public:maven-gradleplugins
Maven Maven Central public:maven-central
npm npm 公有注册表 public:npmjs
NuGet NuGet 画廊 public:nuget-org
Python Python 包索引 public:pypi
Ruby RubyGems.org public:ruby-gems-org
Rust Crates.io 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": [] } }