本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在 CodeArtifact 中配置和使用 Cargo
您可以使用 Cargo 从 CodeArtifact 存储库发布和下载 crate,也可以从 Rust 社区的 crate 注册表 crates.io
使用 CodeArtifact 配置 Cargo
要使用 Cargo 从 AWS CodeArtifact 安装和发布 crate,首先需要使用您的 CodeArtifact 存储库信息对其进行配置。按照以下程序之一中的步骤,使用您的 CodeArtifact 存储库端点信息和凭证来配置 Cargo。
按照控制台说明配置 Cargo
您可以按照控制台中的配置说明,将 Cargo 连接到 CodeArtifact 存储库。控制台说明提供了为 CodeArtifact 存储库定制的 Cargo 配置。您可以使用此自定义配置来设置 Cargo,而无需查找和填写 CodeArtifact 信息。
-
打开 AWS CodeArtifact 控制台,网址为:https://console.aws.amazon.com/codesuite/codeartifact/home
。 -
在导航窗格中,选择存储库,然后选择要连接到 Cargo 的存储库。
-
选择查看连接说明。
-
选择操作系统。
-
选择 Cargo。
-
按照生成的说明,将 Cargo 连接到 CodeArtifact 存储库。
手动配置 Cargo
如果您无法或不想使用控制台中的配置说明,可以按照以下说明手动将 Cargo 连接到 CodeArtifact 存储库。
前面示例中的 [registries. 部分定义了一个包含 my_registry] 并提供 my_registryindex 和 credential-provider 信息的注册表。
-
index为您的注册表指定索引的 URL,这是以/结尾的 CodeArtifact 存储库端点。对于不是 Git 存储库的注册表,需要使用sparse+前缀。注意
要使用双堆栈端点,请使用
codeartifact.端点。region.on.aws -
credential-provider指定给定注册表的凭证提供程序。如果未设置credential-provider,则将使用registry.global-credential-providers中的提供程序。通过将credential-provider设置为cargo:token-from-stdout,当从 CodeArtifact 存储库发布或下载时,Cargo 客户端会自动获取新的授权令牌,因此您无需每 12 小时手动刷新授权令牌。
[registry] 部分定义了使用的默认注册表。
-
default指定[registries.中定义的注册表的名称,当从 CodeArtifact 存储库发布或下载时,默认使用该名称。my_registry]
[source.crates-io] 部分定义了未指定注册表时使用的默认注册表。
-
replace-with = "将公有注册表 crates.io 替换为my_registry"[registries.中定义的 CodeArtifact 存储库。如果您需要从外部连接(例如 crates.io)请求程序包,则建议采用此配置。my_registry]要获得 CodeArtifact 的所有好处,例如防止依赖项混淆攻击的程序包来源控制,建议使用源代码替换。使用源代码替换后,CodeArtifact 会代理向外部连接发出的所有请求,并将程序包从外部连接复制到您的存储库。如果不使用源代码替换,Cargo 客户端将根据项目的
Cargo.toml文件中的配置直接检索程序包。如果某个依赖项未使用registry=进行标记,Cargo 客户端将直接从 crates.io 中检索该依赖项,而不会与您的 CodeArtifact 存储库进行通信。my_registry注意
如果您最初使用源代码替换,但更新配置文件后不使用源代码替换,则可能会遇到错误。相反的情况也可能会导致错误。因此,建议避免更改项目的配置。
安装 Cargo crate
使用以下过程从 CodeArtifact 存储库或 crates.io
从 CodeArtifact 安装 Cargo crate
可以使用 Cargo(cargo)CLI 从 CodeArtifact 存储库快速安装特定版本的 Cargo crate。
使用 cargo 从 CodeArtifact 存储库安装 Cargo crate
如果还没有配置,请按照在 CodeArtifact 中配置和使用 Cargo 中的步骤将
cargoCLI 配置为通过适当的凭证来使用 CodeArtifact 存储库。-
使用以下命令从 CodeArtifact 安装 Cargo crate:
cargo add my_cargo_package@1.0.0有关更多信息,请参阅《The Cargo Book》中的 cargo add
。
将 Cargo crate 发布到 CodeArtifact
按照以下步骤,使用 cargo CLI 将 Cargo crate 发布到 CodeArtifact 存储库。
如果还没有配置,请按照在 CodeArtifact 中配置和使用 Cargo 中的步骤将
cargoCLI 配置为通过适当的凭证来使用 CodeArtifact 存储库。-
使用以下命令将 Cargo crate 发布到 CodeArtifact 存储库:
cargo publish有关更多信息,请参阅《The Cargo Book》中的 cargo publish
。