本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
配置 RubyGems 和使用 Bundler CodeArtifact
在中创建存储库后 CodeArtifact,可以使用 RubyGems (gem) 和 Bundler (bundle) 来安装和发布 gem。本主题介绍如何配置包管理器以使用存储库进行身份验证和使用 CodeArtifact 存储库。
使用配置 RubyGems (gem) 和捆绑器 (bundle) CodeArtifact
要使用 RubyGems (gem) 或 Bundler (bundle) 将 gem 发布到或使用其中的宝石 AWS CodeArtifact,您首先需要使用 CodeArtifact 存储库信息(包括访问它的凭据)对其进行配置。按照以下步骤之一中的步骤,使用您的 CodeArtifact 存储库终端节点信息和凭据配置和 bundle CLI 工具。gem
使用控制台说明进行配置 RubyGems 和捆绑器
您可以使用控制台中的配置说明将 Ruby 包管理器连接到 CodeArtifact 存储库。控制台说明提供了自定义命令,您可以运行这些命令来设置软件包管理器,而无需查找和填写您的 CodeArtifact 信息。
-
在 https://console.aws.amazon.com/codesuite/codeartifact
/hom AWS CodeArtifact e 打开控制台。 -
在导航窗格中,选择存储库,然后选择要用于安装或发布 Ruby Gem 的存储库。
-
选择查看连接说明。
-
选择操作系统。
-
选择要在 CodeArtifact 存储库中配置的 Ruby 包管理器客户端。
-
按照生成的说明来配置程序包管理器客户端,以便从存储库安装 Ruby Gem 或将 Ruby Gem 发布到存储库。
手动配置 RubyGems 和捆绑器
如果您无法或不想使用控制台中的配置说明,则可以按照以下说明手动将 Ruby 包管理器连接到 CodeArtifact 存储库。
在命令行中,使用以下命令获取 CodeArtifact 授权令牌并将其存储在环境变量中。
my_domain用您的 CodeArtifact 域名替换。111122223333替换为域名所有者的 AWS 账户 ID。如果您要访问您拥有的域中的存储库,则无需包括--domain-owner。有关更多信息,请参阅 Cross-account 域名。
要将 Ruby gem 发布到您的存储库,请使用以下命令获取 CodeArtifact 存储库的端点并将其存储在
RUBYGEMS_HOST环境变量中。gemCLI 使用此环境变量来确定 Gem 的发布位置。注意
或者,您可以不使用
RUBYGEMS_HOST环境变量,而是在使用gem push命令时为存储库端点提供--host选项。my_domain用您的 CodeArtifact 域名替换。111122223333替换为域名所有者的 AWS 账户 ID。如果您要访问您拥有的域中的存储库,则无需包括--domain-owner。有关更多信息,请参阅 Cross-account 域名。my_repo替换为您的 CodeArtifact 存储库名称。
以下 URL 是一个示例存储库端点:
https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/ruby/my_repo/注意
要使用双堆栈端点,请使用
codeartifact.端点。region.on.aws要将 Ruby gem 发布到您的存储库,您必须 RubyGems 通过编辑
~/.gem/credentials文件 CodeArtifact 以包含您的身份验证令牌来进行身份验证。如果~/.gem/目录或~/.gem/credentials文件不存在,则创建该目录和文件。-
要使用
gem从存储库安装 Ruby Gem,必须将存储库端点信息和身份验证令牌添加到.gemrc文件。您可以将其添加到全局文件(~/.gemrc)或项目.gemrc文件。您必须向中添加的 CodeArtifact 信息.gemrc是存储库端点和身份验证令牌的组合。它的格式如下:https://aws:${CODEARTIFACT_AUTH_TOKEN}@my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/ruby/my_repo/对于身份验证令牌,您可以使用在上一步中设置的
CODEARTIFACT_AUTH_TOKEN环境变量。要获取存储库端点,您可以读取之前设置的
RUBYGEMS_HOST环境变量的值,也可以使用以下get-repository-endpoint命令根据需要替换这些值:aws codeartifact get-repository-endpoint --domainmy_domain--domain-owner111122223333--repositorymy_repo--format ruby --query repositoryEndpoint --output text
获取端点后,使用文本编辑器在适当位置添加
aws:${CODEARTIFACT_AUTH_TOKEN}@。创建存储库端点和身份验证令牌字符串后,使用echo命令将其添加到.gemrc文件的:sources:部分,具体操作如下:警告
CodeArtifact 不支持使用
gem sources -add命令将存储库添加为源。必须将源直接添加到文件。 要使用 Bundler,必须通过运行以下
bundle config命令,使用存储库端点 URL 和身份验证令牌来配置 Bundler:
现在,您已经在存储库中配置了 RubyGems (gembundle) 和 Bundler (),您可以使用它们来发布和使用 CodeArtifact 存储库中的 Ruby gem。
从中安装 Ruby 宝石 CodeArtifact
使用以下过程使用gem或 bundle CLI 工具从 CodeArtifact 存储库中安装 Ruby gem。
使用 gem 安装 Ruby Gem
您可以使用 RubyGems (gem) CLI 从 CodeArtifact 存储库中快速安装特定版本的 Ruby gem。
使用以下命令从 CodeArtifact 存储库安装 Ruby gem gem
如果还没有,请按照中的步骤使用配置 RubyGems (gem) 和捆绑器 (bundle) CodeArtifact将
gemCLI 配置为使用具有正确凭据的 CodeArtifact 仓库。注意
生成的授权令牌有效期为 12 小时。如果自创建令牌以来已过去 12 小时,则需要创建一个新的令牌。
-
使用以下命令从以下位置安装 Ruby gem CodeArtifact:
gem installmy_ruby_gem--version1.0.0
使用 bundle 安装 Ruby Gem
可以使用 Bundler(bundle)CLI 来安装已在 Gemfile 中配置的 Ruby Gem。
使用以下命令从 CodeArtifact 存储库安装 Ruby gem bundle
如果还没有,请按照中的步骤使用配置 RubyGems (gem) 和捆绑器 (bundle) CodeArtifact将
bundleCLI 配置为使用具有正确凭据的 CodeArtifact 仓库。注意
生成的授权令牌有效期为 12 小时。如果自创建令牌以来已过去 12 小时,则需要创建一个新的令牌。
将您的 CodeArtifact 存储库终端节点 URL 添加到 a 中,
source以便从您的GemfileCodeArtifact 存储库及其上游安装已配置的 Ruby gem。source "https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/ruby/my_repo/" gem 'my_ruby_gem'-
使用以下命令,按照
Gemfile中的说明来安装 Ruby Gem:bundle install
将 Ruby 宝石发布到 CodeArtifact
使用以下过程通过 gem CLI 将 Ruby gem 发布到 CodeArtifact 存储库。
如果还没有,请按照中的步骤使用配置 RubyGems (gem) 和捆绑器 (bundle) CodeArtifact将
gemCLI 配置为使用具有正确凭据的 CodeArtifact 仓库。注意
生成的授权令牌有效期为 12 小时。如果自创建令牌以来已过去 12 小时,则需要创建一个新的令牌。
-
使用以下命令将 Ruby gem 发布到 CodeArtifact 存储库。请注意,如果您未设置
RUBYGEMS_HOST环境变量,则必须在--host选项中提供存储 CodeArtifact 库终端节点。gem push --key codeartifact_api_keymy_ruby_gem-0.0.1.gem