本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将 CodeArtifact 存储库连接到公有存储库
您可以在 CodeArtifact 存储库和外部公有存储库(例如 https://npmjs.com
在 CodeArtifact 中,使用外部连接的预期方法是为每个域设置一个存储库,并与给定的公有存储库建立外部连接。例如,如果要连接到 npmjs.com,请将域中的一个存储库配置为与 npmjs.com 建立外部连接,并将所有其他存储库配置为该存储库的上游存储库。这样,所有存储库都可以使用已经从 npmjs.com 提取的程序包,而不必再次提取和存储程序包。
连接到外部存储库(控制台)
使用控制台向外部存储库添加连接时,会发生以下情况:
如果
-store存储库尚不存在,则将在您的 CodeArtifact 域中为外部存储库创建一个这样的存储库。这些-store存储库充当您的存储库和外部存储库之间的中间存储库,让您可以连接到多个外部存储库。相应的
-store存储库将作为上游存储库添加到您的存储库中。
以下列表包含 CodeArtifact 中的每个 -store 存储库以及它们所连接的相应外部存储库。
cargo-store连接到 crates.io。clojars-store连接到 Clojars 存储库。commonsware-store连接到 CommonsWare Android 存储库。google-android-store连接到 Google Android。gradle-plugins-store连接到 Gradle 插件。maven-central-store连接到 Maven Central 存储库。npm-store连接到 npmjs.com。nuget-store连接到 nuget.org。pypi-store连接到 Python 打包权威机构。rubygems-store连接到 RubyGems.org。
连接到外部存储库(控制台)
打开 AWS CodeArtifact 控制台,网址为:https://console.aws.amazon.com/codesuite/codeartifact/home
。 -
在导航窗格中,选择域,然后选择包含您的存储库的域名。
-
选择您的存储库的名称。
-
选择编辑。
-
在上游存储库中,选择关联上游存储库,然后添加作为上游存储库连接的相应
-store存储库。 -
选择更新存储库。
将 -store 存储库作为上游存储库添加之后,连接到您的 CodeArtifact 存储库的程序包管理器可以从相应的外部存储库提取程序包。
连接到外部存储库 (CLI)
您可以使用 AWS CLI 将外部连接直接添加到存储库,从而将 CodeArtifact 存储库连接到外部存储库。这样就可以让连接到 CodeArtifact 存储库或其任何下游存储库的用户从已配置的外部存储库提取程序包。每个 CodeArtifact 存储库只能有一个外部连接。
建议每个域都有一个存储库与给定的公有存储库建立外部连接。要将其他存储库连接到公有存储库,请将具有外部连接的存储库作为其上游添加进来。如果您或域中的其他人已经在控制台中配置了外部连接,则您的域可能已经有一个 -store 存储库,该存储库与您要连接的公有存储库建立了外部连接。有关 -store 存储库以及与控制台连接的更多信息,请参阅连接到外部存储库(控制台)。
向 CodeArtifact 存储库添加外部连接 (CLI)
使用
associate-external-connection来添加外部连接。以下示例将存储库连接到 npm 公有注册表 npmjs.com。有关支持的外部存储库的列表,请参阅支持的外部连接存储库。aws codeartifact associate-external-connection --external-connectionpublic:npmjs\ --domainmy_domain--domain-owner111122223333--repositorymy_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 参数使用名称列中的值。
| Repository type | 描述 | Name |
|---|---|---|
| Maven | Clojars 存储库 | public:maven-clojars |
| Maven | CommonsWare Android 存储库 | 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)
要移除在 AWS CLI 中使用 associate-external-connection 命令添加的外部连接,请使用 disassociate-external-connection。
aws codeartifact disassociate-external-connection --external-connectionpublic:npmjs\ --domainmy_domain--domain-owner111122223333--repositorymy_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": [] } }