AWS Cloud School 8th/<transit gateway, lambda> Simple Todo

AWS 람다 함수에서 패키지가 필요할 때

Randy, the engineer 2025. 3. 21. 12:06

 

AWS 람다 함수를 작성하고 실행할 때, No module named 'pymysql'이라는 메시지가 떴습니다.

 

이후에 람다 함수를 nodejs로 바꾸긴 했지만, 일단 파이썬으로 람다 함수를 작성할 때 이런 에러가 발생했습니다.

결국 람다 함수에서 패키지를 사용해야 한다는건데,

 

AWS 웹 콘솔에서 실행하는 람다 함수에 패키지를 어떻게 넣어줄 수 있을까요?

 

해결

로컬에 pymysql 패키지 다운로드 후 압축

로컬에서 pymysql을 다운받고, 이를 zip파일로 압축합니다.

Layer 생성

 

람다 웹 콘솔을 보면 계층(layer)라는 탭이 있습니다.

여기 들어가서 계층 생성

 

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

 

Lambda에 적용

 

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

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

이후 계층을 추가할 때 ARN 지정으로 선택하고,

앞에서 미리 복사해뒀던 ARN을 붙여넣기, 추가 버튼을 눌러주면 람다 함수에 레이어가 정상적으로 추가됩니다.

 

이후 람다 함수에서 패키지를 호출, 사용해도 정상적으로 동작하는 것을 확인할 수 있습니다.