CodeBuild에서 Python 패키지 사용 - CodeArtifact

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

CodeBuild에서 Python 패키지 사용

다음 단계는 CodeBuild에서 제공하는 도커 이미지에 나열된 운영 체제를 사용하여 테스트되었습니다.

IAM 역할을 사용하여 권한 설정

이러한 단계는 CodeBuild에서 CodeArtifact의 Python 패키지를 사용할 때 필요합니다.

  1. AWS Management Console에 로그인하여 https://console.aws.amazon.com/iam/에서 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로 업그레이드하기만 하면 됩니다. 최신 이미지 버전을 사용한다면 이 줄을 제거해도 됩니다.

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