Lambda에서 외부 라이브러리 사용(psycopg2)

2551 단어 S3lambdapsycopg2AWS
개시하다
램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의 운행 시간 버전을 결합시켜 해결했다.

좋은 웹페이지 즐겨찾기