在 CodeArtifact 中配置和使用 pip - CodeArtifact

在 CodeArtifact 中配置和使用 pip

pip 是 Python 程序包的程序包安装程序。要使用 pip 从 CodeArtifact 存储库中安装 Python 程序包,您必须先使用 CodeArtifact 存储库信息和凭证来配置 pip 客户端。

pip 只能用于安装 Python 程序包。要发布 Python 程序包,您可以使用 twine。有关更多信息,请参阅 在 CodeArtifact 中配置和使用 twine

使用 login 命令配置 pip

首先,配置要与 AWS CLI 一起使用的 AWS 凭证,如开始使用 CodeArtifact 中所述。然后,使用 CodeArtifact login 命令来提取凭证并使用这些凭证来配置 pip

注意

如果您要访问您拥有的域中的存储库,则无需包括 --domain-owner。有关更多信息,请参阅 跨账户域

要配置 pip,请运行以下命令。

aws codeartifact login --tool pip --domain my_domain --domain-owner 111122223333 --repository my_repo

login 使用您的 AWS 凭证从 CodeArtifact 提取授权令牌。login 命令会编辑 ~/.config/pip/pip.conf,将 index-url 设置为 --repository 选项指定的存储库,从而将 pip 配置为与 CodeArtifact 一起使用。

调用 login 后的默认授权期为 12 小时,且必须调用 login 来定期刷新令牌。有关使用 login 命令创建的授权令牌的更多信息,请参阅 使用 login 命令创建的令牌

不使用 login 命令配置 pip

如果您无法使用 login 命令来配置 pip,则可以使用 pip config

  1. 使用 AWS CLI 来提取新的授权令牌。

    注意

    如果您要访问您拥有的域中的存储库,则无需包括 --domain-owner。有关更多信息,请参阅 跨账户域

    CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text`
  2. 使用 pip config 来设置 CodeArtifact 注册表 URL 和凭证。以下命令将仅更新当前的环境配置文件。要更新系统范围的配置文件,请将 site 替换为 global

    pip config set site.index-url https://aws:$CODEARTIFACT_AUTH_TOKEN@my_domain-111122223333.d.codeartifact.region.amazonaws.com/pypi/my_repo/simple/
    注意

    要使用双堆栈端点,请使用 codeartifact.region.on.aws 端点。

重要

注册 URL 必须以正斜杠 (/) 结尾。否则,您无法连接到存储库。

示例 pip 配置文件

以下是设置 CodeArtifact 注册表 URL 和凭证后的 pip.conf 文件示例。

[global] index-url = https://aws:eyJ2ZX...@my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/pypi/my_repo/simple/

运行 pip

要运行 pip 命令,必须使用 CodeArtifact 配置 pip。有关更多信息,请参阅以下文档。

  1. 按照 设置 AWS CodeArtifact 部分中的步骤来配置您的 AWS 账户、工具和权限。

  2. 按照 在 CodeArtifact 中配置和使用 twine 中的步骤配置 twine

假设您的存储库或其中一个上游存储库中存在程序包,则可以使用 pip install 来安装。例如,使用以下命令来安装 requests 程序包。

pip install requests

使用 -i 选项暂时恢复为从 https://pypi.org,而不是从 CodeArtifact 存储库安装程序包。

pip install -i https://pypi.org/simple requests