
AWS 람다 함수를 작성하고 실행할 때, No module named 'pymysql'이라는 메시지가 떴습니다.
이후에 람다 함수를 nodejs로 바꾸긴 했지만, 일단 파이썬으로 람다 함수를 작성할 때 이런 에러가 발생했습니다.
결국 람다 함수에서 패키지를 사용해야 한다는건데,
AWS 웹 콘솔에서 실행하는 람다 함수에 패키지를 어떻게 넣어줄 수 있을까요?
해결
로컬에 pymysql 패키지 다운로드 후 압축
로컬에서 pymysql을 다운받고, 이를 zip파일로 압축합니다.
Layer 생성

람다 웹 콘솔을 보면 계층(layer)라는 탭이 있습니다.
여기 들어가서 계층 생성

이름을 설정하고, 파일을 선택할 때 아까 압축해뒀던 pymysql.zip파일을 업로드해줍니다
Lambda에 적용

layer를 추가하고 나면 버전 ARN이라는 것이 생깁니다. 이를 미리 복사해둡니다.

이후 람다 탭에 들어가서 람다 함수 밑에 Layers클릭

이후 계층을 추가할 때 ARN 지정으로 선택하고,
앞에서 미리 복사해뒀던 ARN을 붙여넣기, 추가 버튼을 눌러주면 람다 함수에 레이어가 정상적으로 추가됩니다.
이후 람다 함수에서 패키지를 호출, 사용해도 정상적으로 동작하는 것을 확인할 수 있습니다.
'AWS Cloud School 8th > <transit gateway, lambda> Simple Todo' 카테고리의 다른 글
| 0번째 todo가 삭제되지 않는 문제 (1) | 2025.03.21 |
|---|---|
| AWS API gateway의 CORS error (0) | 2025.03.21 |
| Lambda connect TIMEOUT 에러 해결하기 (0) | 2025.03.21 |
| AWS Transit gateway의 ECMP 동작 확인하기 (0) | 2025.03.20 |
| 프로젝트 시작하기 (0) | 2025.03.16 |