本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
配置 RubyGems 和 Bundler 并将其与 CodeArtifact 结合使用
在 CodeArtifact 中创建存储库后,您可以使用 RubyGems(gem)和 Bundler(bundle)来安装和发布 Gem。本主题介绍如何配置程序包管理器以使用 CodeArtifact 存储库进行身份验证,以及使用 CodeArtifact 存储库。
使用 CodeArtifact 配置 RubyGems(gem)和 Bundler(bundle)
要使用 RubyGems(gem)或 Bundler(bundle)向 AWS CodeArtifact 发布 Gem 或使用其中的 Gem,首先需要使用您的 CodeArtifact 存储库信息(包括用于访问该存储库的凭证)对其进行配置。按照以下程序之一中的步骤,使用您的 CodeArtifact 存储库端点信息和凭证来配置 gem 和 bundle CLI 工具。
按照控制台说明来配置 RubyGems 和 Bundler
您可以按照控制台中的配置说明,将 Ruby 程序包管理器连接到 CodeArtifact 存储库。控制台说明提供了自定义命令,您可以运行这些命令来设置程序包管理器,而无需查找和填写 CodeArtifact 信息。
-
打开 AWS CodeArtifact 控制台,网址为:https://console.aws.amazon.com/codesuite/codeartifact/home
。 -
在导航窗格中,选择存储库,然后选择要用于安装或发布 Ruby Gem 的存储库。
-
选择查看连接说明。
-
选择操作系统。
-
选择要使用 CodeArtifact 存储库配置的 Ruby 程序包管理器客户端。
-
按照生成的说明来配置程序包管理器客户端,以便从存储库安装 Ruby Gem 或将 Ruby Gem 发布到存储库。
手动配置 RubyGems 和 Bundler
如果您无法或不想使用控制台中的配置说明,可以按照以下说明手动将 Ruby 程序包管理器连接到 CodeArtifact 存储库。
在命令行中,使用以下命令来提取 CodeArtifact 授权令牌并将其存储在环境变量中。
将
my_domain替换为您的 CodeArtifact 域名。将
111122223333替换为域所有者的 AWS 账户 ID。如果您要访问您拥有的域中的存储库,则无需包括--domain-owner。有关更多信息,请参阅 跨账户域。
要将 Ruby Gem 发布到存储库,请使用以下命令获取 CodeArtifact 存储库的端点,然后将其存储在
RUBYGEMS_HOST环境变量中。gemCLI 使用此环境变量来确定 Gem 的发布位置。注意
或者,您可以不使用
RUBYGEMS_HOST环境变量,而是在使用gem push命令时为存储库端点提供--host选项。将
my_domain替换为您的 CodeArtifact 域名。将
111122223333替换为域所有者的 AWS 账户 ID。如果您要访问您拥有的域中的存储库,则无需包括--domain-owner。有关更多信息,请参阅 跨账户域。将
my_repo替换为您的 CodeArtifact 存储库名称。
以下 URL 是一个示例存储库端点:
https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/ruby/my_repo/注意
要使用双堆栈端点,请使用
codeartifact.端点。region.on.aws要将 Ruby Gem 发布到存储库,您必须通过编辑
~/.gem/credentials文件以包含身份验证令牌,来使用 RubyGems 向 CodeArtifact 进行身份验证。如果~/.gem/目录或~/.gem/credentials文件不存在,则创建该目录和文件。-
要使用
gem从存储库安装 Ruby Gem,必须将存储库端点信息和身份验证令牌添加到.gemrc文件。您可以将其添加到全局文件(~/.gemrc)或项目.gemrc文件。必须添加到.gemrc的 CodeArtifact 信息是存储库端点和身份验证令牌的组合。它的格式如下: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:
您已经使用 CodeArtifact 存储库配置了 RubyGems(gem)和 Bundler(bundle),现在可以通过它们向存储库发布 Ruby Gem 以及使用来自存储库的 Ruby Gem。
从 CodeArtifact 安装 Ruby Gem
按照以下步骤,使用 gem 或 bundle CLI 工具从 CodeArtifact 存储库安装 Ruby Gem。
使用 gem 安装 Ruby Gem
可以使用 RubyGems(gem)CLI 从 CodeArtifact 存储库快速安装特定版本的 Ruby Gem。
使用 gem 从 CodeArtifact 存储库安装 Ruby Gem
如果还没有配置,请按照使用 CodeArtifact 配置 RubyGems(gem)和 Bundler(bundle) 中的步骤将
gemCLI 配置为通过适当的凭证来使用 CodeArtifact 存储库。注意
生成的授权令牌有效期为 12 小时。如果自创建令牌以来已过去 12 小时,则需要创建一个新的令牌。
-
使用以下命令从 CodeArtifact 安装 Ruby Gem:
gem installmy_ruby_gem--version1.0.0
使用 bundle 安装 Ruby Gem
可以使用 Bundler(bundle)CLI 来安装已在 Gemfile 中配置的 Ruby Gem。
使用 bundle 从 CodeArtifact 存储库安装 Ruby Gem
如果还没有配置,请按照使用 CodeArtifact 配置 RubyGems(gem)和 Bundler(bundle) 中的步骤将
bundleCLI 配置为通过适当的凭证来使用 CodeArtifact 存储库。注意
生成的授权令牌有效期为 12 小时。如果自创建令牌以来已过去 12 小时,则需要创建一个新的令牌。
将 CodeArtifact 存储库端点 URL 作为
source添加到Gemfile,以便从 CodeArtifact 存储库及其上游安装已配置的 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
向 CodeArtifact 发布 Ruby Gem
按照以下步骤,使用 gem CLI 将 Ruby Gem 发布到 CodeArtifact 存储库。
如果还没有配置,请按照使用 CodeArtifact 配置 RubyGems(gem)和 Bundler(bundle) 中的步骤将
gemCLI 配置为通过适当的凭证来使用 CodeArtifact 存储库。注意
生成的授权令牌有效期为 12 小时。如果自创建令牌以来已过去 12 小时,则需要创建一个新的令牌。
-
使用以下命令将 Ruby Gem 发布到 CodeArtifact 存储库。请注意,如果未设置
RUBYGEMS_HOST环境变量,则必须在--host选项中提供您的 CodeArtifact 存储库端点。gem push --key codeartifact_api_keymy_ruby_gem-0.0.1.gem