내용으로 건너뛰기

Amazon MWAA 환경에 Python 라이브러리를 설치하려면 어떻게 해야 합니까?

3분 분량
0

Amazon Managed Workflows for Apache Airflow(Amazon MWAA) 환경에 Python 라이브러리를 설치하려고 합니다.

간략한 설명

Amazon MWAA는 퍼블릭 네트워크 및 프라이빗 네트워크 웹 서버 액세스 모드를 제공합니다.

프라이빗 웹 서버가 있는 Amazon MWAA 환경에 Python 종속성을 설치하려면 Python 휠 .whl을 사용하십시오.

Amazon MWAA 환경에 Python 라이브러리를 설치하려면 requirements.txt 또는 plugins.zip을 사용하십시오. requirements.txt를 사용할 때 pip는 기본적으로 Python Package Index(PyPI)에서 나열된 패키지를 설치합니다. 컴파일된 아티팩트가 있는 사용자 지정 라이브러리 또는 패키지를 .whl 파일로 설치하는 경우 plugins.zip 파일을 사용하십시오. 사용자 지정 Amazon MWAA 작업, 후크, 센서 또는 인터페이스를 설치할 때는 plugins.zip 파일을 사용해야 합니다. 플러그인은 환경 변수, 인증 및 구성 파일(예: .crt 및 .yaml)을 내보냅니다.

해결 방법

참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하면 AWS CLI의 오류 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.

시작하기 전에 사전 요구 사항을 완료해야 합니다.

Amazon MWAA 로컬 환경 설정

다음 단계를 완료하십시오.

  1. AWS CLI를 사용하여 Docker 이미지를 빌드한 다음, Amazon MWAA 로컬 환경을 설정합니다.

    참고: Amazon MWAA 리포지토리는 AWS CLI 유틸리티를 제공하고 Amazon MWAA 환경을 로컬로 복제합니다. 자세한 내용은 GitHub 웹 사이트에서 aws-mwaa-local-runner를 참조하십시오.

  2. Python 라이브러리와 종속성을 requirements.txt 파일에 추가합니다.
    참고: 플러그인을 다운로드한 후 requirements.txt 파일에 제약 조건이 포함되어 있는지 확인하십시오.

  3. 다음 스크립트를 사용하여 requirements.txt 파일을 테스트합니다.

    #aws-mwaa-local-runner % ./mwaa-local-env test-requirements

    예상 출력:

    Installing requirements.txtCollecting aws-batch (from -r /usr/local/airflow/dags/requirements.txt (line 1))  
      Downloading https://files.pythonhosted.org/packages/5d/11/3aedc6e150d2df6f3d422d7107ac9eba5b50261cf57ab813bb00d8299a34/aws_batch-0.6.tar.gz  
    Collecting awscli (from aws-batch->-r /usr/local/airflow/dags/requirements.txt (line 1))  
      Downloading https://files.pythonhosted.org/packages/07/4a/d054884c2ef4eb3c237e1f4007d3ece5c46e286e4258288f0116724af009/awscli-1.19.21-py2.py3-none-any.whl (3.6MB)  
        100% |████████████████████████████████| 3.6MB 365kB/s   
    ...  
    ...  
    ...  
    Installing collected packages: botocore, docutils, pyasn1, rsa, awscli, aws-batch  
      Running setup.py install for aws-batch ... done  
    Successfully installed aws-batch-0.6 awscli-1.19.21 botocore-1.20.21 docutils-0.15.2 pyasn1-0.4.8 rsa-4.7.2

자세한 내용은 PyPi.org 요구 사항 파일 형식을 사용하여 Python 종속성 설치를 참조하십시오.

requirements.txt 파일에서 .whl 파일 빌드

다음 단계를 완료하십시오.

  1. 패키지 요구 사항의 경우 다음 local-runner 명령을 실행합니다.

    #aws-mwaa-local-runner % ./mwaa-local-env package-requirements

    참고: 이 명령은 모든 .whl 파일을 aws-mwaa-local-runner/plugin 폴더에 다운로드합니다. package-requirements 명령을 실행하면 애플리케이션의 요구 사항/디렉터리에서 plugins.zip, 새 packaged_requirements.txtconstraints.txt 파일을 사용할 수 있습니다.

  2. plugins.zip, 새 packaged_requirements.txtconstraints.txt 파일을 다운로드합니다.

  3. packaged_requirements.txt 파일을 수정하여 공개 제약 조건 대신 /usr/local/airflow/dags/constraints.txt를 가리키도록 합니다.

constraints.txt 파일 업로드

contraints.txt 파일을 Amazon Simple Storage Service(Amazon S3) 버킷 dag/ 디렉터리에 업로드하거나 플러그인 파일에 constraints.txt 파일을 포함할 수 있습니다. contraints.txt 파일을 Amazon S3 버킷 dag/ 디렉터리에 업로드하면 Amazon S3에서 배포를 위해 requirements.txt 파일을 수정합니다. 그러나 플러그인 파일에 constraints.txt 파일을 포함하는 경우 packaged_requirements.txt 파일이 /usr/local/airflow/dags/constraints.txt를 가리키고 공개 제약 조건을 가리키지 않도록 해야 합니다.

플러그인에 constraints.txt 파일을 업로드하는 경우 다음 명령을 사용합니다.

#aws-mwaa-local-runner % zip -j requirements/plugins.zip constraints.txt

plugins.zip 파일에 패키지된 .whl 파일을 가리키는 새 requirements.txt 파일 생성

다음 단계를 완료하십시오.

  1. 새 packaged_requirements.txt 파일을 수정합니다. Amazon S3 dags 디렉터리에 파일을 업로드한 경우 다음 예제의 **{OPTION}**을 dags로 바꾸십시오. 또는 plugins.zip 파일에 파일을 추가한 경우 **{OPTION}**을 plugins로 바꾸십시오.

    --find-links /usr/local/airflow/plugins  
    --no-index  
    --constraint "/usr/local/airflow/{OPTION}/constraints.txt"   
    ....snip.....
  2. plugins.zip 파일과 requirements.txt 파일을 Amazon MWAA 클러스터의 Amazon S3 버킷에 업로드합니다.

  3. 환경을 업데이트합니다.

패키지 설치 문제 해결

aws-mwaa-local-runner를 사용하여 DAG, 사용자 지정 플러그인 및 Python 종속성을 테스트할 수 있습니다. Amazon MWAA 워커 또는 스케줄러 로그 그룹에서 로그 파일을 확인합니다.

중요: 패키지 또는 플러그인 .zip 파일을 설치하기 전에 Amazon MWAA CLI 유틸리티를 사용하여 Python 종속성 및 plugins.zip 파일을 테스트하십시오.

관련 정보

Python 종속성 관리 옵션 2: Python 휠(.whl)

플러그인