-
[AWS] 람다에서 계층(Layer)를 이용해 파이썬 패키지사용하기AWS 2023. 10. 17. 22:00
lambda에서 openai 라이브러리를 활용하여 chatgpt와 대화하는 기능을 구현하려고 한다.
openai라는 라이브러리를 사용하여 lambda내부에서 chatgpt api를 가져올 수 있는데
[ex]
테스트를 돌려보니
[ERROR] AttributeError: module 'openai' has no attribute 'api'
자꾸 openai 모듈을 못가져온다.
AWS Lambda에서 외부 라이브러리나 사용자 정의 코드를 사용하려면 해당 라이브러리를 포함한 패키지를 Lambda에 업로드 해야 한다!
계층을 추가해보자.
1. 패키지 설치
적당한 위치에다가 디렉토리를 하나 만들고 원하는 패키지를 설치한다
주의해야 할 점은 디렉토리 이름을 python으로 만들어야 한다는 점이다.
1) 디렉토리 만들기
mkdir python
2) 원하는 패키지 설치
pip install [패키지 이름] -t [패키지 설치 위치]
3) 압축하기
zip -r [zip파일 이름].zip [압축할 파일 이름]
여기서 또 주의해야 할 점은.. python디렉토리 그 자체를 압축해야한다는 점이다.
여기서 삽질하느라 많은 시간을 사용했다 ㅠ python 내부에서 압축한 파일은 의미가 없다...
2. 계층 만들기
aws에 접속해서 계층을 만들자.
[lambda] > [계층] > [계층 생성]
1번에서 만든 zip 파일을 업로드 한다.
호환 런타임은 연결할 람다 함수와 같게 설정해줘야 한다!!
이제 함수와 연결해보자
만들어놓은 람다함수에 들어가서
[Add a Layer] 클릭
사용자 지정 계층 클릭 후 만들어 놓은 계층을 추가해주면 잘 돌아가는 것을 확인 할 수 있다 !!
까먹지 말자..
1. 디렉토리 이름은 python으로!
2. 압축할 때 python 디렉토리 그 자체를 압축!
'AWS' 카테고리의 다른 글
[AWS] Serverless 채팅 구현하기 (0) 2023.09.04