Python용 AWS Lambda 배포 패키지를 어떻게 생성합니까?

모든 파일에 대한 읽기 및 실행 권한과 함께 .zip 파일의 루트에 위치한 함수 모듈을 포함하는 배포 패키지를 생성해야 하는 경우가 있습니다.

"ModuleNotFoundError" 및 "Module cannot be loaded"는 Python의 Lambda 함수에 대한 일반적인 오류입니다. 이러한 오류는 대개 배포 패키지 .zip 파일에 대한 잘못된 폴더 구조 또는 파일 권한으로 인해 발생합니다.

모든 종속성 모듈을 함수 프로젝트에 로컬로 설치

참고: 대부분의 Python 모듈은 플랫폼에 독립적이지만 일부 모듈은 특정 운영 체제 환경을 대상으로 컴파일됩니다. AWS Lambda는 Linux 환경에서 실행됩니다. 배포용 pip를 사용하여 모듈을 설치하는 경우 올바른 플랫폼에 대한 종속성이 포함되도록 .zip 파일을 Linux 환경에서 구축하는 것이 가장 좋습니다.

pip install을 사용하여 모듈을 설치하는 경우 모듈은 사용자 폴더 또는 시스템 폴더에 위치합니다. Lambda를 위한 배포 패키지를 생성하는 경우 패키지에 이러한 시스템 설치 종속성이 포함되지 않습니다. 다음 명령을 실행하여 종속성을 사용자의 함수 프로젝트 폴더에 로컬로 설치합니다.

pip install boto3 -t ./

이 경우 프로젝트 폴더의 루트에 boto3 Python 모듈이 설치됩니다. Lambda 함수에 필요한 모든 모듈에 대해 이 과정을 반복합니다.

권한 추가(Linux 및 macOS만 해당)

모든 종속 모듈이 프로젝트 폴더에 다운로드된 후 다음 명령을 실행하여 파일에 필요한 권한이 있는지 확인합니다.

chmod -R 755 .

수동으로 배포 패키지 구축

이 명령을 실행하여 Lambda에 배포할 프로젝트 폴더를 압축합니다.

zip -r ../myDeploymentPackage.zip .

이는 게시 폴더에 있는 모든 파일을 상위 폴더에 있는 .zip 파일로 압축합니다.

배포 패키지 확인

Linux 및 macOS:

unzip -l myDeploymentPackage.zip

이 명령은 폴더 구조를 표시합니다. 애플리케이션용 기본 Python 함수 파일은 프로젝트 폴더의 루트에 있어야 합니다. 추가 Python 모듈과 같은 다른 종속성 파일은 다른 폴더에 위치할 수 있습니다.

Windows:

zip 도구를 사용하여 파일의 압축을 풉니다. 기본 Python 함수 파일은 .zip 파일의 루트 폴더에 있어야 합니다. .zip 파일에 Python 함수 파일이 포함된 다른 기본 폴더가 있는 경우 루트 폴더의 모든 함수 파일과 함께 .zip 파일을 다시 생성합니다.

Lambda 함수에 배포 패키지 업로드

  1. AWS Lambda 콘솔을 엽니다.
  2. 탐색 창에서 함수를 선택한 다음 해당 함수를 엽니다.
  3. 함수 코드 섹션에서 코드 입력 유형 드롭다운 목록을 확장한 다음 .ZIP 파일 업로드를 선택합니다.
  4. 업로드를 선택한 다음 해당 .zip 파일을 선택합니다.
  5. [저장]을 선택합니다.
  6. [Test]를 선택합니다.

또한 update-function-code 명령을 사용하여 AWS 명령줄 인터페이스(AWS CLI)에서 .zip 파일을 업로드할 수 있습니다.


페이지 내용이 도움이 되었습니까? | 아니요

AWS 지원 지식 센터로 돌아가기

도움이 필요하십니까? AWS 지원 센터를 방문하십시오.

게시된 날짜: 2018년 7월 30일