本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
以下步骤已使用提供的 Docker 镜像中列出的操作系统进行了测试。 CodeBuild
使用 IAM 角色设置权限
从 CodeArtifact 中使用 Python 包时,需要执行这些步骤 CodeBuild。
登录 AWS Management Console 并打开 IAM 控制台,网址为https://console.aws.amazon.com/iam/
。 -
在导航窗格中,选择角色。在角色页面上,编辑您的 CodeBuild 构建项目使用的角色。此角色必须具有以下权限。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codeartifact:GetAuthorizationToken", "codeartifact:GetRepositoryEndpoint", "codeartifact:ReadFromRepository" ], "Resource": "*" }, { "Effect": "Allow", "Action": "sts:GetServiceBearerToken", "Resource": "*", "Condition": { "StringEquals": { "sts:AWSServiceName": "codeartifact.amazonaws.com" } } } ] }
重要
如果您还 CodeBuild 想使用发布软件包,请添加
codeartifact:PublishPackageVersion
权限。有关信息,请参阅《IAM 用户指南》中的修改角色。
登录并使用 pip 或 twine
要从中使用 Python 包 CodeBuild,请运行项目buildspec.yaml
文件pre-build
部分中的login
命令pip
以配置为从中获取包 CodeArtifact。有关更多信息,请参阅 CodeArtifact 与 Python 一起使用。
成功运行 login
后,您可以运行 build
部分中的 pip
命令来安装或发布 Python 程序包。
Linux
注意
仅当您使用的是较旧 AWS CLI 的pip3 install awscli --upgrade --user
CodeBuild 映像时,才需要使用进行升级。如果您使用的是最新映像版本,则可以删除该行。
要使用 pip
安装 Python 程序包,请执行以下操作:
pre_build:
commands:
- pip3 install awscli --upgrade --user
- aws codeartifact login --tool pip --domain my_domain
--domain-owner 111122223333
--repository my_repo
build:
commands:
- pip install requests
要使用 twine
发布 Python 程序包,请执行以下操作:
pre_build:
commands:
- pip3 install awscli --upgrade --user
- aws codeartifact login --tool twine --domain my_domain
--domain-owner 111122223333
--repository my_repo
build:
commands:
- twine upload --repository codeartifact mypackage
Windows
要使用 pip
安装 Python 程序包,请执行以下操作:
version: 0.2
phases:
install:
commands:
- '[Net.ServicePointManager]::SecurityProtocol = "Tls12"; Invoke-WebRequest https://awscli.amazonaws.com/AWSCLIV2.msi -OutFile $env:TEMP/AWSCLIV2.msi'
- Start-Process -Wait msiexec "/i $env:TEMP\AWSCLIV2.msi /quiet /norestart"
pre_build:
commands:
- '&"C:\Program Files\Amazon\AWSCLIV2\aws" codeartifact login --tool pip --domain my_domain
--domain-owner 111122223333
--repository my_repo
'
build:
commands:
- pip install requests
要使用 twine
发布 Python 程序包,请执行以下操作:
version: 0.2
phases:
install:
commands:
- '[Net.ServicePointManager]::SecurityProtocol = "Tls12"; Invoke-WebRequest https://awscli.amazonaws.com/AWSCLIV2.msi -OutFile $env:TEMP/AWSCLIV2.msi'
- Start-Process -Wait msiexec "/i $env:TEMP\AWSCLIV2.msi /quiet /norestart"
pre_build:
commands:
- '&"C:\Program Files\Amazon\AWSCLIV2\aws" codeartifact login --tool twine --domain my_domain
--domain-owner 111122223333
--repository my_repo
'
build:
commands:
- twine upload --repository codeartifact mypackage