"Lambda에서""invalid ELF header""오류 발생 시 대응 방법"
1303 단어 AWSPythonServerlesstech
나는 그 대응법의 한 예를 기술했다.
※ sshutunel 사용 시 동일한 방법으로 해결할 수 있습니다.
컨디션
MacOS
Python3.8
까닭
paramiko가 코드에 로컬 바이너리를 사용한 것 같아요.
설치 시 환경에 따라 헤더의 정보가 다를 것 같습니다.
Lambda는 Amazon Linux로, MacOS에 설치된 라이브러리를 사용할 때 오류가 발생합니다.
대응법
EC2에서 Amazon Linux2 환경을 구축하고 설치를 부분적으로 zip화합니다.
참고로 기사는 이쪽 방법으로 처리했는데 솔직히 귀찮아서 두 번째 방법으로 처리했어요.
lambci/lambda 사용
Docker를 사용하여 계층형 Lambda 환경을 만들 수 있습니다.
paramiko
$ docker run --rm -v $(pwd):/var/task lambci/lambda:build-python3.8 \
> pip install -r requirements.txt -t python/lib/python3.8/site-packages/
zip -r lambda-layer.zip ./python > /dev/null
이후 완성된 zip을 람다의 레이어에 올리면 사용할 수 있다.참고 자료
Reference
이 문제에 관하여("Lambda에서""invalid ELF header""오류 발생 시 대응 방법"), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/koyomi/articles/bcb5f2e0c524a6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)