在 CodeBuild 中使用 Python 套件 - CodeArtifact

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在 CodeBuild 中使用 Python 套件

下列步驟已使用 CodeBuild 所提供 Docker 映像中列出的作業系統進行測試。

使用 IAM 角色設定許可

在 CodeBuild 中使用來自 CodeArtifact 的 Python 套件時,需要這些步驟。

  1. 登入 AWS Management Console ,並在 https://console.aws.amazon.com/iam/://www. 開啟 IAM 主控台。

  2. 在導覽窗格中,選擇角色。在角色頁面上,編輯 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

若要從 CodeBuild 使用 Python 套件,請從專案buildspec.yaml檔案的 pre-build區段執行 login命令,以設定 從 CodeArtifact pip 擷取套件。如需詳細資訊,請參閱搭配 Python 使用 CodeArtifact

成功執行 login 後,您可以從 build區段執行pip命令,以安裝或發佈 Python 套件。

Linux

注意

只有在您使用較舊的 CodeBuild 映像 AWS CLI pip3 install awscli --upgrade --user時,才需要使用 升級 。如果您使用的是最新的映像版本,則可以移除該行。

使用 安裝 Python 套件pip

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

若要使用 發佈 Python 套件twine

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

使用 安裝 Python 套件pip

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

若要使用 發佈 Python 套件twine

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