CSP (Cloud Service Provider)/GCP

Composer PyPI Package

BTC_.tf 2024. 1. 31. 15:44

베하, 다들 잘 지내고 계신가요.

엊그제 새해가 온 거 같은데, 어느덧 1월의 마지막이 왔네요.

 

오늘은 Composer에서 PyPI Package에 대해 알아보겠습니다.

그럼, 시작하겠습니다.

 


 

먼저 PyPI Package의 종류에 대해 알아보겠습니다.

 

Preinstalled PyPI Package해당 환경의 Composer Image에 포함된 Package입니다. 각 Composer Image에는 Composer 및 Airflow Version과 관련된 PyPI Package가 포함됩니다. 

Custom PyPI Package는 Preinstalled PyPI Package 외에 추가로 Environment 에 설치할 수 있는 Package입니다.

 

 

Package를 List하는 방법에 대해 알아보겠습니다.

 

먼저, Preinstalled PyPI Package List 명령어입니다.

gcloud beta composer environments list-packages \
    [Environment명] \
    --location [Location명]

Environment의 이름과 Environment가 존재하는 Location을 적용하면 됩니다.

 

두번째는 Custom PyPI Package List 명령어입니다.

gcloud composer environments describe [Environment명] \
  --location [Location명] \
  --format="value(config.softwareConfig.pypiPackages)"

 

 

다음으론 Composer에 Custom Package를 변경, 추가, 삭제하는 방법에 대해 알아보겠습니다.

 

먼저 PyPI에서 실행하는 명령어입니다.

[PyPI Package 변경 명령어]

gcloud composer environments update [Environment명] \
    --location [Location명] \
     --update-pypi-packages-from-file requirements.txt

여기서 'requirements.txt'는 Package 요구사항이 기술된 문서입니다.

 

해당 명령어 실행 시 주의할 점은, 요구사항 문서에 기술된 Package로 변경된다는 점입니다.

이때, 지정되지 않은 기존 Package는 삭제된다는 점 유의 바라겠습니다.

 

[PyPI Package 추가 명령어]

gcloud composer environments update [Environment명] \
    --location [Location명] \
     --update-pypi-package [Package명] [버전 및 추가 항목]

해당 명령어 실행 시, --update-pypi-package 인수에 기입된 Package가 Environment에 추가됩니다.

 

[PyPI Package 삭제 명령어]

gcloud composer environments update [Environment명] \
    --location [Location명] \
     --remove-pypi-packages [Package명]

해당 명령어 실행 시, --remove-pypi-package 인수에 기입된 Package가 Environment에서 삭제됩니다.

 

 

다음은 Public Repository에서 Package를 설치하는 방법입니다.

Public IP가 있는 다른 Repository에 호스팅된 Package를 설치할 수 있습니다.

 

먼저, pip 구성 파일을 생성합니다.

구성 파일의 요소는 다음과 같아야 합니다.

- Repository URL

- Repository에 대한 액세스 사용자 인증 정보

- 기본이 아닌 pip 설치 옵션

 

그 후, Environment의 Bucket URI를 파악합니다.

파악된 Environment Bucket의 /config/pip/ 폴더에 위에서 생성한 pip 구성 파일을 업로드합니다.

마지막으로, 위에서 기술한 명령어를 이용해 Package를 설치합니다.

 

 

추가로 Artifact Registry Repository에서 Package를 설치하는 방법도 알아보겠습니다.

Project의 Artifact Registry Repository에 Package를 저장하고, 이 Repository에서 설치하도록 Environment를 구성할 수가 있습니다.

 

먼저, pip 구성 파일을 생성합니다.

구성 파일의 요소는 다음과 같아야 합니다.

- Artifact Registry Repository의 URL

- Repository에 대한 액세스 사용자 인증 정보

- 기본이 아닌 pip 설치 옵션

 

Artifact Registry Repository의 경우 Repository URL에 /simple/을 추가합니다.

아래는 예시 URL입니다.

[global]
extra-index-url = https://us-central1-python.pkg.dev/example-project/example-repository/simple/

 

파악된 Environment Bucket의 /config/pip/ 폴더에 위에서 생성한 pip 구성 파일을 업로드합니다.

마지막으로, 위에서 기술한 명령어를 이용해 Package를 설치합니다.

 


 

오늘은 Composer의 PyPI Package에 대해 간단하게 알아봤습니다.

 

다들 좋은 하루 보내시구요, 독감 조심하세요.

그럼 베바!