프로그래밍/Web + Server

AWS Lambda로 thumbnail 만들기(2) - Lambda 설정하기

한밀 2024. 12. 27. 22:45

기본적인 사항(권한설정, 트리거)은
자습서: Amazon S3 트리거를 사용하여 썸네일 이미지 생성 https://docs.aws.amazon.com/ko_kr/lambda/latest/dg/with-s3-tutorial.html  을 참고하면 된다. 

 앞에서 만든 python.zip 파일을 계층에 업로드 해야 한다. 호환 아키텍처은 x86_64  로 설정한다. 

그리고 pillow-simd 을 설치하는 경우 꼭 환경변수를 설정해야 한다. 
LD_LIBRARY_PATH  에 대해
/var/lang/lib:/lib64:/usr/lib64:/var/runtime:/var/runtime/lib:/var/task:/var/task/lib:/opt/lib:/opt/python/lib
라고 설정해야 한다. 

LD_LIBRARY_PATH  는 shared library 경로를 지정하는 환경변수이다. 사실 일반적인 경우 

$LD_LIBRARY_PATH:/opt/python/lib

이런 식으로 기존환경변수에 concat 개념으로 추가할 수 있어야 한다. 그런데 내가 뭘 잘못했는지 잘 안된다. 그래서 좀 무식하게 저렇게 설정했다. 맨 끝에 붙은 /opt/python/lib  가 중요하다. 내가 올린 python.zip 파일이 이 경로에 풀린다는 것이다.  docker에서   /root/python/lib 에 넣었던 파일이 /opt/python/lib 에 위치하게 된다.  당연히  docker에서  /root/python 에서 넣었던 라이브러리는 /opt/python 에 위치하게 될 것이다. 
  어떻게 /opt/python 에 있는 라이브러리가 불러 올 수 있을 까 하는 의문이 들 수도 있다. PYTHONPATH  라는 환경변수를 이용하면 특정경로에 있는 라이브러리를 참고해서 python을 실행할 수 있다. 
 지난 글에서 사용했던 docker에서 

PYTHONPATH="/root/python" python3

라고 환경변수를 전달하면서 python 을 실행하면 /root/python 에 설치했던 라이브러리를 이용해서 파이썬을 실행할 수 있다. 


다음 글에서는 여러문제가 생겼을 때 대처하는 방법에 대해 적겠다. 누군가는 이 글을 나와 같은 버전과 같은 라이브러리를 이용하지 않고 유사 문제를 풀려고 할 수 있다. 내가 이글을 작성하면서 적용한 테크닉을 잘 활용하면 도움이 될수도 있을 것 같다.