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

최종 업데이트 날짜: 2020년 12월 28일

AWS Lambda 함수를 트리거하도록 Amazon Simple Storage Service(Amazon S3) 이벤트 알림을 구성했습니다. 이벤트가 발생할 때 함수가 트리거되지 않는 이유는 무엇입니까?

간략한 설명

다음 사항이 모두 올바르게 구성되었는지 확인합니다.

해결 방법

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

Amazon S3 이벤트 유형

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

객체 키 이름 필터

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

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

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

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

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

자세한 내용은 객체 키 명명 지침을 참조하세요.

Lambda 권한

Lambda 함수의 리소스 기반 정책은 Amazon S3 버킷이 함수를 호출하도록 허용해야 합니다. Amazon S3 콘솔을 사용하여 새 이벤트 알림을 추가하면 이러한 권한이 해당 정책에 자동으로 추가됩니다.

참고: AWS CLI에서 put-bucket-notification-configuration을 사용하여 새 이벤트 알림을 추가해도 Lambda 함수 정책은 업데이트되지 않습니다. 하지만 권한을 제거하더라도 Amazon S3 이벤트 알림이 나중에 함수를 호출하지 못할 수 있습니다.

정책을 확인하여 필요한 권한이 있는지 확인하고 필요한 경우 추가합니다. 자세한 내용은 내 Lambda 함수를 트리거하기 위해 Amazon S3 이벤트 알림을 만들 때 "Unable to validate the following destination configurations" 오류가 발생하는 이유는 무엇입니까?를 참조하세요.

Lambda 동시성

Lambda 함수는 수신되는 Amazon S3 이벤트 알림의 동시 실행을 처리하도록 구성해야 합니다. 요청이 함수가 조정할 수 있는 것보다 더 빨리 도착하거나 함수가 최대 동시성에 도달하는 경우 Lambda는 재시도하기 전에 이러한 요청을 조절하고 다시 중지합니다.

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