AWS Lambda PIL 오류 해결 (python)

은종·2022년 7월 19일
0

API Gateway에 연결된 lambda에서 이미지를 처리하는 라이브러리인 PIL을 사용하려는 중 아래의 에러를 마주했다.

cannot import name '_imaging' from 'PIL'

cannot import name '_imaging' from 'PIL'

구글에 검색해보니 pillow 패키지의 compiled binaries 파일을 lambda가 처리하지 못해서 생기는 에러라고 합니다

복잡한 해결법을 찾았는데 그보다 더 쉽게 해결할 수 있어서 정리한다.
복잡쓰한 해결법 보러가기!

👍 해결

Don't reinvent the wheel. (바퀴를 재발명하지 마라)

다른 사람이 만든 pillow 패키지가 포함된 layer를 추가 해주기만 하면 된다!!

ARN layer

https://api.klayers.cloud/api/v2/p3.9/layers/latest/ap-northeast-2/html 에서 자기가 추가하고 싶은 패키지의 arn을 알아낸다.
(p3.9를 바꾸면 다른 버전의 파이썬도 확인할 수 있다.)

지금은 pillow 패키지가 필요하니 arn:aws:lambda:ap-northeast-2:770693421928:layer:Klayers-p39-pillow:1 을 복사한다.

lambda 함수로 가서 맨 아래 Layers에 Add a layer를 누른다!

Specify an ARN을 누르고 아까 복사했던 arn을 붙여넣는다.

Add를 누른다. 끝 -

참고자료

lambda에 custom layer 적용하기
ARN of Python Packages as Lambda Layers

profile
스타 폶 바럼

1개의 댓글

comment-user-thumbnail
2024년 1월 6일

흑....감사합니다
고생하고 있엇는데...ㅠㅠㅠㅠ

답글 달기