

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

# CodeArtifact로 twine 구성 및 사용
<a name="python-configure-twine"></a>

[twine](https://pypi.org/project/twine/)은 Python 패키지용 패키지 게시 유틸리티입니다. twine을 사용하여 CodeArtifact 리포지토리에 Python 패키지를 게시하려면 먼저 CodeArtifact 리포지토리 정보와 보안 인증 정보로 twine을 구성해야 합니다.

twine은 Python 패키지를 게시하는 용도로만 사용할 수 있습니다. Python 패키지를 설치하기 위해 [pip](https://pypi.org/project/pip/)를 사용할 수 있습니다. 자세한 내용은 [CodeArtifact로 pip 구성 및 사용](python-configure-pip.md) 단원을 참조하십시오.

## `login` 명령으로 twine 구성
<a name="python-configure-twine-login"></a>

먼저에 설명된 AWS CLI대로와 함께 사용할 자격 AWS 증명을 구성합니다[CodeArtifact 시작하기](getting-started.md). 그런 다음 CodeArtifact `login` 명령을 사용하여 보안 인증을 가져오고 해당 인증을 사용하여 twine을 구성합니다.

**참고**  
소유한 도메인의 리포지토리에 액세스하는 경우 `--domain-owner`를 포함하지 않아도 됩니다. 자세한 내용은 [크로스 계정 도메인](domain-overview.md#domain-overview-cross-account) 단원을 참조하십시오.

twine을 구성하려면 다음 명령을 실행합니다.

```
aws codeartifact login --tool twine --domain my_domain --domain-owner 111122223333 --repository my_repo
```

 `login`는 AWS 자격 증명을 사용하여 CodeArtifact에서 권한 부여 토큰을 가져옵니다. `login` 명령은 `--repository` 옵션에서 지정한 리포지토리를 보안 인증과 함께 추가하도록 `~/.pypirc`를 편집하여 CodeArtifact와 함께 사용할 twine을 구성합니다.

`login` 직접 호출 후의 기본 승인 기간은 12시간이며, 토큰을 주기적으로 새로 고치려면 `login`을 직접적으로 호출해야 합니다. `login` 명령으로 만든 인증 토큰에 관한 자세한 내용은 [`login` 명령으로 생성된 토큰](tokens-authentication.md#auth-token-login)을 참조하세요.

## `login` 명령 없이 twine 구성
<a name="python-configure-twine-without-login"></a>

 `login` 명령을 사용하여 twine을 구성할 수 없는 경우 `~/.pypirc` 파일 또는 환경 변수를 사용할 수 있습니다. `~/.pypirc` 파일을 사용하려면 다음 항목을 파일에 추가합니다. 암호는 `get-authorization-token` API에서 획득한 인증 토큰이어야 합니다.

```
[distutils]
index-servers =
 codeartifact
[codeartifact]
repository = https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/pypi/my_repo/
password = auth-token
username = aws
```

**참고**  
듀얼 스택 엔드포인트를 사용하려면 `codeartifact.region.on.aws` 엔드포인트를 사용합니다.

환경 변수를 사용하려면 다음을 수행합니다.

**참고**  
자신이 소유한 도메인의 리포지토리에 액세스하는 경우 `--domain-owner`를 포함하지 않아도 됩니다. 자세한 내용은 [크로스 계정 도메인](domain-overview.md#domain-overview-cross-account) 단원을 참조하십시오.

```
export TWINE_USERNAME=aws
export TWINE_PASSWORD=`aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text`
export TWINE_REPOSITORY_URL=`aws codeartifact get-repository-endpoint --domain my_domain --domain-owner 111122223333 --repository my_repo --format pypi --query repositoryEndpoint --output text`
```

## twine 실행
<a name="python-run-twine"></a>

twine을 사용하여 Python 패키지 자산을 게시하려면 먼저 CodeArtifact 권한 및 리소스를 구성해야 합니다.

1. [with AWS CodeArtifact 설정](get-set-up-for-codeartifact.md) 섹션의 단계에 따라 AWS 계정, 도구 및 권한을 구성합니다.

1. [`login` 명령으로 twine 구성](#python-configure-twine-login) 또는 [`login` 명령 없이 twine 구성](#python-configure-twine-without-login) 의 단계에 따라 twine을 구성합니다.

twine을 구성한 후 `twine` 명령을 실행할 수 있습니다. 다음 명령을 사용하여 Python 패키지 자산을 게시합니다.

```
twine upload --repository codeartifact mypackage-1.0.tgz
```

Python 애플리케이션을 빌드하고 패키징하는 방법에 관한 자세한 내용은 Python Packaging Authority 웹 사이트에서 [Generating Distribution Archives](https://packaging.python.org/tutorials/packaging-projects/#generating-distribution-archives)를 참조하세요.