Lambda에서 외부 라이브러리 사용(psycopg2)
램pda에서 psycopg2를 사용하기 위해서는 디버그 패키지를 만들어 업로드해야 한다.
(여러 Lambda 함수에서 사용하는 등의 경우에도 Lambda 레이어를 생성하여 함께 부품화하는 방법이 있습니다.)
참고 자료
패키지 만들기
$ mkdir -p hoge-function/package
$ touch hoge-function/lambda_function.py
$ pip install psycopg2-binary -t ./hoge-function/package/
**フォルダ構成 (zip前)
hoge-function
| lambda_function.py
| package
| psycopg2-binary
| psycopg2-binary-info
$ cd ./hoge-function/package/
# psycopg2-binaryをzipファイルに含める
$ zip -r ../my-deployment-package.zip .
$ cd ..
# lambda_function.pyをzipファイルに含める
$ zip -r ../my-deployment-package.zip lambda_function.py
**フォルダ構成(zip後)
hoge-function
| my-deployment-package.zip
| lambda_function.py
| package
| psycopg2-binary
| psycopg2-binary-info
설치에 필요한 최소한의 것만 원하기 때문에psycopg2-binary를 설치했습니다.(외부 라이브러리와 컴파일러가 필요 없고 독립 포장으로 제작됨)
Lambda에 업로드
$ aws s3 cp hoge-function/my-deployment-package.zip S3://{Bucket-name}/{Path}/~
이번에는 S3에 올리고 람바다 콘솔에서 S3통을 지정해 디버그 패키지를 올린다.다음 순서에 따라 업로드하면 완성됩니다.
문제 해결
[ERROR] Runtime.ImportModuleError: Unable to import module 'lambda_function': No module named 'psycopg2._psycopg'
함수를 실행하는 중 상술한 오류가 발생했습니다.나의 경우 프로그램 라이브러리가 설치된 환경의pytohon 버전과 Lambda의 운행 시간 버전을 결합시켜 해결했다.
Reference
이 문제에 관하여(Lambda에서 외부 라이브러리 사용(psycopg2)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Geeryo/items/bf8d8dbd964640dbc238텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)