일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 파이어베이스
- 코드트리
- 코틀린
- 시뮬레이션
- BFS
- 에러
- 맵
- 멀티맵
- 파이어스토어
- 백트래킹
- 분할정복
- dfs
- 안드로이드
- 다익스트라
- 자료 구조
- 브루트포스
- 코드트리 조별과제
- 백준
- 문자열
- dp
- 풀이
- 그래프 탐색
- c++
- 그래프 이론
- 다이나믹 프로그래밍
- 그래프
- 코딩테스트
- map
- 코드트리조별과제
- c++풀이
- Today
- Total
Kangho_Story
[AWS] Lambda 람다 errorMessage": "Unable to import module 'lambda_function': Error importing numpy: you should not try to import numpy from\n 에러 해결 본문
[AWS] Lambda 람다 errorMessage": "Unable to import module 'lambda_function': Error importing numpy: you should not try to import numpy from\n 에러 해결
캉호 2024. 6. 25. 10:03에러
Response
{
"errorMessage": "Unable to import module 'lambda_function': Error importing numpy: you should not try to import numpy from\n its source directory; please exit the numpy source tree, and relaunch\n your python interpreter from there.",
"errorType": "Runtime.ImportModuleError",
"requestId": "eec9d88d-c572-4e13-8ee1-311088c771cc",
"stackTrace": []
}
Function Logs
START RequestId: eec9d88d-c572-4e13-8ee1-311088c771cc Version: $LATEST
LAMBDA_WARNING: Unhandled exception. The most likely cause is an issue in the function code. However, in rare cases, a Lambda runtime update can cause unexpected function behavior. For functions using managed runtimes, runtime updates can be triggered by a function change, or can be applied automatically. To determine if the runtime has been updated, check the runtime version in the INIT_START log entry. If this error correlates with a change in the runtime version, you may be able to mitigate this error by temporarily rolling back to the previous runtime version. For more information, see https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html
[ERROR] Runtime.ImportModuleError: Unable to import module 'lambda_function': Error importing numpy: you should not try to import numpy from
its source directory; please exit the numpy source tree, and relaunch
your python interpreter from there.
Traceback (most recent call last):END RequestId: eec9d88d-c572-4e13-8ee1-311088c771cc
REPORT RequestId: eec9d88d-c572-4e13-8ee1-311088c771cc Duration: 1.32 ms Billed Duration: 2 ms Memory Size: 128 MB Max Memory Used: 36 MB
Request ID
eec9d88d-c572-4e13-8ee1-311088c771cc
에러 원인 분석
AWS Lambda에서 python으로 Pandas를 사용하려고 했다.
Lambda에서는 라이브러리를 사용하기 위해서 라이브러리 파일과 내가 작성한 소스코드를 압축해서 함께 넣거나 layer로 따로 넣어야 한다.
나는 라이브러리 파일만 따로 layer로 넣는 방법을 시도했다.
Pandas 내부에 있는 numpy가 원활하게 import가 안 된 것 같다.
하지만 확인 결과 pandas 안에는 numpy가 잘 들어가 있었다.
구체적인 원인은 파악하지 못했다.
다만 AWS 람다에서 이러한 오류가 상당히 자주 발생한다는 것은 알게 되었다.
해결 시도
여러 가지 해결법이 존재겠지만 그중 가장 간편하고 빠른 방법을 선택했다.
바로 ARN을 사용하는 것이다.
내가 사용한 AWS Lambda의 python 런타임 버전은 python3.12이다.
https://github.com/keithrozario/Klayers
이 주소로 들어가면 버전에 따라 사용 가능한 ARN이 있다.
나는 python3.12를 선택했으니 들어가 준다.
들어가면 이번에는 리전이 나온다. 내가 사용하는 리전을 선택해서 html을 누르자.
그러면 pandas가 있는 것을 확인할 수 있다.
이 arn을 복사하자.
그리고 AWS Lambda에 들어가서 Layers를 눌러주자.
그 후 계층에서 Add Layer를 눌러주자
이후 ARN 지정을 누르고 아래에 아까 복사한 ARN을 입력하고 확인을 누른 후 추가하면 끝이다.
시도 결과
내 Lambda에 Layer가 1개로 증가한 것을 볼 수 있고 눌러보면 pandas가 정상적으로 추가되었음을 알 수 있다