lambda 3

Runtime.ImportModuleError

[ERROR] Runtime.ImportModuleError: Unable to import module 'lambda_function': No module named 'pydantic_core._pydantic_core'Traceback (most recent call last): 람다함수를 작성하고 실행시켜봤을 때 위와 같은 에러가 Cloudwatch log에 찍힌 것을 확인했습니다. AWS Lambda를 웹 콘솔에서 작성하고자 할 때 별도의 패키지가 필요한 경우로컬에서 패키지 다운로드 -> zip파일로 생성 -> AWS lambda layer로 업로드와 같은 로직을 사용하고 있었는데요. 제가 mac 컴퓨터를 사용하고있다 보니 패키지를 다운로드할 때 mac용 패키지로 다운로드되어서AWS lambda ..

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

AWS 람다 함수를 작성하고 실행할 때, No module named 'pymysql'이라는 메시지가 떴습니다. 이후에 람다 함수를 nodejs로 바꾸긴 했지만, 일단 파이썬으로 람다 함수를 작성할 때 이런 에러가 발생했습니다.결국 람다 함수에서 패키지를 사용해야 한다는건데, AWS 웹 콘솔에서 실행하는 람다 함수에 패키지를 어떻게 넣어줄 수 있을까요? 해결로컬에 pymysql 패키지 다운로드 후 압축로컬에서 pymysql을 다운받고, 이를 zip파일로 압축합니다.Layer 생성 람다 웹 콘솔을 보면 계층(layer)라는 탭이 있습니다.여기 들어가서 계층 생성 이름을 설정하고, 파일을 선택할 때 아까 압축해뒀던 pymysql.zip파일을 업로드해줍니다 Lambda에 적용 layer를 추가하고 나면 버전 ..

Lambda connect TIMEOUT 에러 해결하기

lambda에서 db로 통신을 보냈으나, TIMEOUT 에러가 발생하고 있습니다. DB를 향해 통신이 보내지는 것 까지는 정상적으로 동작했다는 뜻이나, DB까지 통신이 닿지 않았다는 것을 뜻합니다.왜 통신이 닿지 않은 걸까요?람다 함수를 읽어보면 DB에 대한 정보까지 다 적혀있었는데도 말입니다. 해결 람다 함수 콘솔에서 configuration -> RDS databases에서 DB를 연결해줘야 합니다.저의 경우 DB를 VPC의 private subnet 내부에 두었기 때문에 람다가 DB를 찾아갈 수 있도록 별도의 설정이 필요했습니다. 이 설정을 하게되면 람다는 DB가 존재하는 VPC에 종속되어 해당 VPC내부에서 실행됩니다. 아주 간단하게 그려보면 이런 식으로 구성되어있다고 할 수 있습니다. 따라서 람..