AWS Lambda에 종속성 파일을 업로드하는 방법

AWS Lambda에 종속성 파일을 업로드하는 방법

Python 기반 AWS Lambda 함수를 만들려고 하는데 모듈을 가져와야 합니다. 나는 다음의 지시를 따랐다.배포 패키지 생성(Python)아마존에서.

ZIP 파일을 생성하고 업로드하면 ZIP에 다음이 포함됩니다.

주요 ZIP 콘텐츠, tester2는 나의 주요 Python 프로그램입니다.

usaddress 폴더에 usaddress 종속성을 넣었습니다. 비록 그것이 어디에 속하는지 추측일 뿐입니다.

어떤 경우든 파일을 Lambda에 업로드하면 오류가 반환됩니다.

{ 
"errorMessage": "Unable to import module 'Tester2'"
}
START RequestId: e9c2cafe-3705-11e6-a289-5366a5578765 Version: $LATEST
Unable to import module 'Tester2': No module named future.builtins
END RequestId: e9c2cafe-3705-11e6-a289-5366a5578765

usaddress/pycrfsuite/_pycrfsuite.pyd 파일을 usaddress/pycrfsuite __init_파일로 가져오는 중입니다. _pycrfsuite는 올바른 디렉토리에 있지만 왜 무시되는지 모르겠습니다.

이것을 작동시키려면 어떻게 해야 합니까?

답변1

많은 조사 끝에 .pyd 파일(무시되었던 파일의 파일 형식)이 컴파일된 cython 파일이며 DOS와 UNIX 시스템에서 다르게 컴파일된다는 것을 깨달았습니다. 그래서 EC2 인스턴스를 열고 종속성 라이브러리인 usaddress를 설치한 다음 ec2 인스턴스가 컴파일한 .so 파일을 복사했습니다.

결국 작동하게 되었고 이는 실제로 호환되지 않는 시스템 파일의 문제였습니다.

관련 정보