Artifact Registry에 Python 패키지 저장

이 빠른 시작에서는 비공개 Artifact Registry Python 저장소를 설정하고, 패키지를 업로드한 후 패키지를 설치하는 방법을 보여줍니다.

시작하기 전에

  1. Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  4. Enable the Artifact Registry API.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  7. Enable the Artifact Registry API.

    Enable the API

Cloud Shell 실행

이 빠른 시작에서는 Google Cloud에서 호스팅되는 리소스를 관리하기 위한 셸 환경인 Cloud Shell을 사용합니다.

Cloud Shell에는 Google Cloud CLI 및 Python이 사전 설치되어 있습니다. gcloud CLI는 Google Cloud의 기본 명령줄 인터페이스를 제공합니다.

Cloud Shell 시작:

  1. Google Cloud Console로 이동합니다.

    Google Cloud console

  2. Google Cloud 콘솔 툴바에서 Cloud Shell 활성화를 클릭합니다.

Console 하단의 프레임에서 Cloud Shell 세션이 열립니다. 이 셸을 사용하여 gcloud 명령어를 실행합니다.

필수 패키지 설치

Twine은 Python 패키지를 게시하기 위한 도구입니다. Twine을 사용하여 Artifact Registry에 패키지를 업로드합니다.

이 빠른 시작에서는 Cloud Shell에 포함된 Python 설치를 사용합니다. 이 기본 설치에는 Artifact Registry에서 인증을 처리하기 위한 Artifact Registry 키링 백엔드가 포함되어 있습니다. 가상 환경을 만들거나 Cloud Shell 외부에서 Python을 설정할 경우 인증에 대해 키링 백엔드를 설치해야 합니다. 자세한 내용은 키링으로 인증을 참조하세요.

Twine을 설치하기 위해 다음 명령어를 실행합니다.

pip install twine

이제 Artifact Registry를 설정할 준비가 되었습니다.

저장소 만들기

패키지에 대해 저장소를 만듭니다.

  1. 다음 명령어를 실행하여 현재 프로젝트의 us-central1 위치에 quickstart-python-repo라는 새 Python 패키지 저장소를 만듭니다.

    gcloud artifacts repositories create quickstart-python-repo \
        --repository-format=python \
        --location=us-central1 \
        --description="Python package repository"
    
  2. 다음 명령어를 실행하여 저장소가 생성되었는지 확인합니다.

    gcloud artifacts repositories list
    
  3. gcloud 명령어를 단순화하려면 기본 저장소를 quickstart-python-repo로 설정하고 기본 위치를 us-central1로 설정합니다. 이 값을 설정하면 저장소나 위치가 필요한 gcloud 명령어에 값을 지정할 필요가 없습니다.

    저장소를 설정하려면 다음 명령어를 실행하세요.

    gcloud config set artifacts/repository quickstart-python-repo
    

    위치를 설정하려면 다음 명령어를 실행하세요.

    gcloud config set artifacts/location us-central1
    

    이러한 명령어에 대한 자세한 내용은 gcloud config set 문서를 참조하세요.

인증 구성

Artifact Registry 키링 백엔드는 환경에서 사용자 인증 정보를 검색하는 전략인 애플리케이션 기본 사용자 인증 정보(ADC)를 사용하여 사용자 인증 정보를 찾습니다.

이 빠른 시작에서는 다음을 수행합니다.

  • ADC에 대한 사용자 인증 정보를 생성합니다. 프로덕션 환경에서 서비스 계정을 사용하고 GOOGLE_APPLICATION_CREDENTIALS 환경 변수로 사용자 인증 정보를 제공합니다.
  • piptwine 명령어에 Artifact Registry 저장소 URL을 포함하여, 저장소 URL로 pip 및 Twine을 구성할 필요가 없도록 합니다.

ADC에 대해 사용자 인증 정보를 생성하기 위해 다음 명령어를 실행합니다.

gcloud auth application-default login

인증 방법 및 pip 및 Twine 구성에 저장소 추가에 대한 자세한 내용은 Python 패키지 저장소에 대한 인증 설정을 참조하세요.

예시 패키지 가져오기

Python 프로젝트를 빌드할 때 배포 파일은 Python 프로젝트의 dist 하위 디렉터리에 저장됩니다. 이 빠른 시작을 간소화하기 위해 사전 빌드된 패키지 파일을 다운로드합니다.

  1. python-quickstart라는 Python 프로젝트 폴더를 만듭니다.

    mkdir python-quickstart
    
  2. dist라는 하위 디렉터리를 만든 후 디렉터리로 변경합니다.

    mkdir python-quickstart/dist
    cd python-quickstart/dist
    
  3. Python 패키징 사용자 가이드 튜토리얼 Python 프로젝트 패키징에 사용된 샘플 Python 패키지를 다운로드합니다.

    pip download sampleproject
    

    이 명령어는 sampleproject 패키지 및 해당 종속 항목 peppercorn을 다운로드합니다.

저장소에 패키지 업로드

Twine을 사용하여 패키지를 저장소에 업로드합니다.

  1. dist 디렉터리에서 상위 python-quickstart 디렉터리로 변경합니다.

    cd ..
    
  2. dist 디렉터리의 저장소에 패키지를 업로드합니다.

    python3 -m twine upload --repository-url https://us-central1-python.pkg.dev/PROJECT_ID/quickstart-python-repo/ dist/*
    

    python3 -m으로 명령어를 실행하면 Python이 twine을 찾아서 명령어를 실행합니다. twine 명령어가 시스템 경로에 있으면 python3 -m 없이 실행할 수 있습니다.

Twine이 sampleprojectpeppercorn을 모두 저장소에 업로드합니다.

저장소에서 패키지 보기

패키지가 추가되었는지 확인하려면 quickstart-python-repo 저장소의 패키지를 나열합니다.

다음 명령어를 실행합니다.

gcloud artifacts packages list --repository=quickstart-python-repo

패키지 버전을 보려면 다음 명령어를 실행합니다.

gcloud artifacts versions list --package=PACKAGE

여기서 PACKAGE는 패키지 ID입니다.

패키지 설치

다음 명령어를 실행하여 패키지를 설치합니다.

pip install --index-url https://us-central1-python.pkg.dev/PROJECT_ID/quickstart-python-repo/simple/ sampleproject

문제 해결

기본적으로 pip 및 Twine과 같은 도구는 자세한 오류 메시지를 반환하지 않습니다. 오류가 발생하면 --verbose 플래그를 사용하여 명령어를 다시 실행해서 보다 자세한 출력을 가져옵니다. 자세한 내용은 Python 패키지 문제 해결을 참조하세요.

삭제

이 페이지에서 사용한 리소스 비용이 Google Cloud 계정에 청구되지 않도록 하려면 다음 단계를 수행합니다.

저장소를 삭제하기 전에, 보관할 패키지를 다른 위치에서 사용할 수 있는지 확인합니다.

저장소를 삭제하려면 다음 안내를 따르세요.

  1. quickstart-python-repo 저장소를 삭제하려면 다음 명령어를 실행합니다.

    gcloud artifacts repositories delete quickstart-python-repo
    
  2. 활성 gcloud 구성에 지정한 기본 저장소 및 위치 설정을 삭제하려면 다음 명령어를 실행합니다.

    gcloud config unset artifacts/repository
    gcloud config unset artifacts/location
    

다음 단계