1. Intro
AWS Lambda에서 pycopg2를 활용하게 될 때, python 버전에 따라 등록가능한 pycopg2가 다르다는 것을 처음 알게 되었습니다. Runtime settings가 python 3.9에서 잘 쓰던 pycopg2가.. 당연하겠지만 python 3.11에서는 잘 돌아가지 않는 이슈가 있어 이를 해결하기 위한 간단한 방법을 공유하고자 합니다.
2. AWS Lambda pycopg2
AWS 에서 사용할 수 있는 pycopg2는 별도로 빌드를 해줘야 하는 것 같은데, 이를 미리 준비해준 유익한 Github Repository를 소개드립니다.
Step 1. Download
해당 레포지토리에서 awslambda-psycopg2 를 다운로드 받습니다. 그러면 여러 디렉토리가 쭉 보이게 될 겁니다. 이때 원하는 python 버전에 맞는 pycopg2를 확인할 수 있습니다.
Step 2. Change dir name & zip
원하는 Python 버전의 디렉토리의 이름을 python으로 변경하여 zip으로 압축합니다.
Step 3. Upload into layer
압축한 python.zip 파일을 Layer에 업로드 합니다. 업로드할 때 아키텍처 및 런타임을 설정해주고 Create합니다.
Layer 추가가 완료됐다면 이제 원하는 Function에서 사용 가능합니다.
3. Conclusion
기존에 잘 사용하는 public layer에서는 위와 같이 psycopg가 있긴 합니다. 그외 aws-pycopg2가 있긴 하지만 pycopg2와는 사용하는 방법이 약간 상이한 것 같아 문제가 있었는데, 위의 방법으로도 해결이 가능했습니다.
추후 Layer를 추가할 때 적절한 아키텍처에 원하는 라이브러리를 추가하기 위한 리서치도 해보아야 할 것 같다는 생각이 드는 경험이었습니다.