AWS Lambda 함수의 ImportError

최근 SAM을 통해 AWS 람다 함수를 배포할 때 가져오기 오류가 발생했습니다.

다음 폴더 구조를 사용했습니다.

src/lambda.py
template.yml


Lambda.py:

def lambda_handler(event, context):
    print('hello world')


템플릿.yml:

AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Resources:
  Lambda:
    Type: AWS::Serverless::Function
    Properties:
      Handler: src.lambda.lambda_handler
      Runtime: python3.8
      Events:
        SchedulingEvent:
          Type: Schedule
          Properties:
            Schedule: rate(5 minutes)


배포되면 다음 오류가 발생했습니다.

Runtime.ImportModuleError: Unable to import module 'src.lambda': No module named 'src'


다른 프로젝트에서 템플릿과 람다 코드를 복사했기 때문에 기본적으로 작동하지 않는 이유에 정말 당황했습니다. 그런 다음 소스 폴더에 작은 __init__.py이 없다는 것을 깨달았습니다 ...

동일한 프로젝트 구조를 사용하는 경우 src 폴더에 빈__init__.py 파일을 추가하는 것을 잊지 마세요!src.lambda에서 핸들러를 template.yml로 설정하면 람다 환경은 src라는 파이썬 모듈을 찾고 있으므로 __init__.py가 필요합니다.

좋은 웹페이지 즐겨찾기