Amazon S3 이벤트 알림이 내 Lambda 함수를 호출하지 않는 이유는 무엇입니까?

최종 업데이트 날짜: 2021년 6월 15일

내 AWS Lambda 함수를 호출하도록 Amazon Simple Storage Service(Amazon S3) 이벤트 알림을 구성했습니다. Amazon S3 이벤트가 발생할 때 함수가 호출되지 않습니다. 이 문제를 해결하려면 어떻게 해야 합니까?

해결 방법

참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생할 경우 AWS CLI의 최신 버전을 사용하고 있는지 확인하세요.

Amazon S3 이벤트 유형이 올바르게 구성되었는지 확인

Amazon S3 이벤트 알림을 구성할 때, Amazon S3가 알림을 전송하도록 하는 지원되는 Amazon S3 이벤트 유형을 지정해야 합니다. 지정하지 않은 이벤트 유형이 Amazon S3 버킷에 발생하면 Amazon S3에서 알림을 전송하지 않습니다.

객체 키 이름 필터가 URL 인코딩(퍼센트 인코딩) 형식인지 확인

이벤트 알림이 객체 키 이름 필터링을 사용하도록 구성된 경우 특정 접두사 또는 접미사가 있는 객체에 대해서만 알림이 게시됩니다.

접두사 또는 접미사에 다음의 특수 문자를 사용하는 경우 URL 인코딩(퍼센트 인코딩) 형식으로 입력해야 합니다.

  • 괄호(“( )”)
  • ASCII 문자 범위 00-1F 16진수(10진수 0~31) 및 7F(10진수 127)
  • 달러("$")
  • 앰퍼샌드("&")
  • 더하기 기호("+")
  • 쉼표(",")
  • 콜론(":")
  • 세미콜론(;)
  • 등호("=")
  • 물음표("?")
  • At 기호("@")
  • 공백(" ")

예를 들어 접두사 값을 “test = abc/"로 정의하려면 해당 값에 "test%3Dabc/”를 입력합니다.

참고: 모든 문자를 나타내는 와일드카드 문자("*")는 접두사 또는 접미사로 필터에 사용할 수 없습니다.

자세한 내용은 객체 메타데이터를 사용한 작업을 참조하세요.

Lambda 함수의 AWS Identity and Access Management(IAM) 정책에 필요한 권한이 있는지 확인합니다.

Lambda 함수의 리소스 기반 정책을 확인하여 Amazon S3 버킷이 함수를 호출하도록 허용하는지 확인합니다. 허용하지 않는 경우 AWS 서비스에 함수 액세스 권한 부여의 지침에 따라 필요한 권한을 추가합니다.

자세한 내용은 AWS Lambda 권한을 참조하세요.

참고: Amazon S3 콘솔을 사용하여 새 이벤트 알림을 추가하면 필요한 권한이 기능의 정책에 자동으로 추가됩니다. AWS CLI에서 put-bucket-notification-configuration 작업을 사용하여 이벤트 알림을 추가하는 경우 함수의 정책이 자동으로 업데이트되지 않습니다.

Amazon S3 이벤트 알림의 동시 호출을 처리하도록 Lambda 함수가 구성되어 있는지 확인합니다.

Amazon S3 이벤트 알림의 동시 호출을 처리하도록 Lambda 함수가 구성되어 있어야 합니다. 호출 요청이 함수의 크기 조정 속도보다 더 빨리 도착하거나 함수가 최대 동시성에 도달하는 경우 Lambda는 이러한 요청을 제한합니다.

자세한 내용은 비동기식 호출AWS Lambda 함수 크기 조정을 참조하세요.