本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
您可以使用nuget
和之类的CLI工具dotnet
来发布和使用来自的软件包 CodeArtifact。本文档提供有关配置CLI工具以及使用它们发布或使用软件包的信息。
主题
配置 nuget 或 dotnet CLI
您可以使用 CodeArtifact NuGet 凭据提供程序、或手动配置 nug CLI et 或 dotnet。 AWS CLI强烈建议 NuGet 使用凭据提供程序进行配置,以简化设置并持续进行身份验证。
方法 1:使用 CodeArtifact NuGet 凭据提供程序进行配置
CodeArtifact NuGet 凭据提供程序简化了 CodeArtifact 使用 NuGet CLI工具的身份验证和配置。 CodeArtifact 身份验证令牌的有效期最长为 12 小时。为了避免在使用 nuget 或 dotnet 时必须手动刷新令牌CLI,凭证提供者会在当前令牌到期之前定期获取新令牌。
重要
要使用凭证提供程序,请确保已从您的nuget.config
文件中清除所有现有 AWS CodeArtifact 证书,这些证书可能是手动添加的,或者是 NuGet 之前通过运行配置aws codeartifact login
添加的。
安装和配置 CodeArtifact NuGet 凭据提供程序
下载最新版本的 AWS. CodeArtifact。 NuGet。 CredentialProvider 来自 NuGet .org 的工具
,使用以下 dotnet
命令。dotnet tool install -g AWS.CodeArtifact.NuGet.CredentialProvider
-
使用
codeartifact-creds install
命令将凭据提供者复制到 pl NuGet ugins 文件夹。dotnet codeartifact-creds install
-
(可选):设置要与凭据提供者一起使用的 AWS 配置文件。如果未设置,则凭证提供程序将使用默认配置文件。有关 AWS CLI 配置文件的更多信息,请参阅命名配置文件。
dotnet codeartifact-creds configure set profile
profile_name
创建存储库并配置凭据提供程序后,您可以使用nuget
或dotnet
CLI工具来安装和发布软件包。有关更多信息,请参阅使用来自的 NuGet 包裹 CodeArtifact 和将 NuGet 包发布到 CodeArtifact。
方法 2:使用 login 命令配置 nuget 或 dotnet
中的codeartifact login
命令将存储库端点和授权令牌 AWS CLI 添加到您的 NuGet 配置文件中,使 nuget 或 dotnet 能够连接到您的存储库。 CodeArtifact 这将修改位于 Windows 和/ ~/.config/NuGet/NuGet.Config
或 ~/.nuget/NuGet/NuGet.Config
Mac/Linux %appdata%\NuGet\NuGet.Config
的用户级 NuGet 配置。有关 NuGet 配置的更多信息,请参阅常用 NuGet 配置
使用 login
命令配置 nuget 或 dotnet
-
配置您的 AWS 凭证以便与一起使用 AWS CLI,如中所述开始使用 CodeArtifact。
-
确保 NuGet CLI工具(
nuget
或dotnet
)已正确安装和配置。有关说明,请参阅 nuget或 dotnet 文档。 -
使用 CodeArtifact
login
命令获取用于的凭据 NuGet。注意
如果您要访问您拥有的域中的存储库,则无需包括
--domain-owner
。有关更多信息,请参阅 跨账户域。重要
Linux 和 MacOS 用户:由于在非 Windows 平台上不支持加密,因此提取的凭证将以纯文本形式存储在配置文件中。
aws codeartifact login --tool
dotnet
--domainmy_domain
--domain-owner111122223333
--repositorymy_repo
login 命令将会:
-
CodeArtifact 使用您的 AWS 凭证获取授权令牌。
-
使用 NuGet 包源的新条目更新您的用户级 NuGet 配置。指向您的 CodeArtifact 存储库端点的源将被调用
。domain_name/repo_name
调用 login
后的默认授权期为 12 小时,且必须调用 login
来定期刷新令牌。有关使用 login
命令创建的授权令牌的更多信息,请参阅 使用 login 命令创建的令牌。
创建存储库并配置身份验证后,可以使用nuget
dotnet
、或msbuild
CLI客户端来安装和发布软件包。有关更多信息,请参阅使用来自的 NuGet 包裹 CodeArtifact 和将 NuGet 包发布到 CodeArtifact。
方法 3:不使用 login 命令来配置 nuget 或 dotnet
要进行手动配置,您必须在 NuGet 配置文件中添加存储库端点和授权令牌,才能让 nuget 或 dotnet 连接到您的存储库。 CodeArtifact
手动配置 nuget 或 dotnet 以连接到您的存储库。 CodeArtifact
-
使用
get-repository-endpoint
AWS CLI 命令确定您的 CodeArtifact 存储库终端节点。aws codeartifact get-repository-endpoint --domain
my_domain
--domain-owner111122223333
--repositorymy_repo
--format nuget输出示例:
{ "repositoryEndpoint": "https://
my_domain
-111122223333
.d.codeartifact.us-west-2
.amazonaws.com/nuget/my_repo
/" } -
使用命令从软件包管理器获取用于连接到存储库的授权
get-authorization-token
AWS CLI 令牌。aws codeartifact get-authorization-token --domain
my_domain
输出示例:
{ "authorizationToken": "eyJ2I...viOw", "expiration": 1601616533.0 }
-
URL通过附加
/v3/index.json
到步骤 3get-repository-endpoint
中URL返回的,创建完整的存储库端点。 将 nuget 或 dotnet 配置为使用步骤 1 中的存储库端点和步骤 2 中的授权令牌。
注意
源代码URL必须以 nuget 或 dotnet 结尾才能成功连接到存储库。
/v3/index.json
CodeArtifactLinux 和 MacOS 用户:由于在非 Windows 平台上不支持加密,因此您必须在以下命令中添加
--store-password-in-clear-text
标志。请注意,这会将您的密码以纯文本形式存储在配置文件中。dotnet nuget add source https://
my_domain
-111122223333
.d.codeartifact.us-west-2
.amazonaws.com/nuget/my_repo
/v3/index.json --namepackageSourceName
--passwordeyJ2I...viOw
--username aws注意
要更新现有源,请使用
dotnet nuget update source
命令。输出示例:
Package source with Name:
domain_name/repo_name
added successfully.注意
要使用双堆栈端点,请使用该
codeartifact.
端点。region
.on.aws
使用来自的 NuGet 包裹 CodeArtifact
配置 NuGet 完毕后 CodeArtifact,即可使用存储在存储 CodeArtifact 库或其上游存储库中的 NuGet 软件包。
要使用或使用 CodeArtifact 存储库或其上游存储库中的软件包版本dotnet
,请运行以下命令替换 nuget
packageName
上面写上你要消费的包裹的名字以及 packageSourceName
在 NuGet 配置文件中使用存储 CodeArtifact 库的源名称。如果您使用login
命令来配置 NuGet 配置,则源名称为 domain_name/repo_name
.
注意
当请求软件包时, NuGet 客户端会缓存该软件包存在哪些版本。由于存在这种行为,对于在所需版本变得可用之前请求的程序包,安装可能会失败。为避免此失败并成功安装现有的软件包,可以在安装之前使用nuget locals all --clear
或清除 NuGet 缓存dotnet nuget locals all --clear
,也可以通过提供选项或-NoCache
选项来避免在install
和restore
命令期间使用缓存dotnet
。nuget
--no-cache
dotnet add package
packageName
--sourcepackageSourceName
安装程序包的特定版本
dotnet add package
packageName
--version1.0.0
--sourcepackageSourceName
有关更多信息,请参阅 Microsoft 文档CLI中的使用 nuget.exe
使用 NuGet .org 的 NuGet 包裹
您可以通过 CodeArtifact 存储库使用 NuGet.org
将 NuGet 包发布到 CodeArtifact
配置完毕后 NuGet CodeArtifact,就可以使用nuget
或dotnet
将包版本发布到 CodeArtifact 存储库。
要将软件包版本推送到 CodeArtifact 存储库,请运行以下命令,并在 NuGet 配置.nupkg
文件中包含文件的完整路径和 CodeArtifact 存储库的源名称。如果您使用login
命令来配置 NuGet 配置,则源名称为domain_name/repo_name
。
注意
如果您没有要发布的 NuGet 包,则可以创建包。有关更多信息,请参阅 Microsoft 文档中的 程序包创建工作流程
dotnet nuget push
path/to/nupkg/SamplePackage.1.0.0.nupkg
--sourcepackageSourceName
CodeArtifact NuGet 凭证提供商参考
CodeArtifact NuGet 凭据提供程序可以轻松配置您的 CodeArtifact 存储库并对其 NuGet 进行身份验证。
CodeArtifact NuGet 凭证提供程序命令
本节包括 CodeArtifact NuGet 凭据提供程序的命令列表。这些命令必须加上前缀 dotnet codeartifact-creds
,如以下示例所示。
dotnet codeartifact-creds
command
configure set profile
:将凭证提供者配置为使用提供的 AWS 配置文件。profile
configure unset profile
:删除已配置的配置文件(如果已设置)。install
:将凭证提供程序复制到plugins
文件夹。install --profile
:将凭证提供者复制到该profile
plugins
文件夹,并将其配置为使用提供的 AWS 配置文件。uninstall
:卸载凭证提供程序。这不会删除对配置文件的更改。uninstall --delete-configuration
:卸载凭证提供程序并删除对配置文件的所有更改。
CodeArtifact NuGet 凭证提供者日志
要启用 CodeArtifact NuGet 凭据提供程序的日志记录,您必须在您的环境中设置日志文件。凭证提供程序日志包含有用的调试信息,例如:
-
用于建立联系的 AWS 配置文件
-
任何身份验证错误
-
如果提供的端点不是 CodeArtifact URL
设置 CodeArtifact NuGet 凭证提供者日志文件
export AWS_CODEARTIFACT_NUGET_LOGFILE=
/path/to/file
设置日志文件后,任何 codeartifact-creds
命令都会将其日志输出附加到该文件的内容中。
CodeArtifact NuGet 凭证提供程序版本
下表包含 CodeArtifact NuGet 凭据提供者的版本历史记录信息和下载链接。