Lambda 함수를 트리거하기 위해 Amazon S3 이벤트 알림을 생성할 때 “Configuration is ambiguously defined”라는 오류가 발생하는 이유는 무엇인가요?

3분 분량
0

AWS Lambda 함수를 트리거하기 위해 Amazon Simple Storage Service(Amazon S3) 버킷 이벤트 알림을 생성하려고 하는데 오류가 발생했습니다.

간략한 설명

알림의 이벤트 정보와 해당 접두사 또는 접미사가 S3 버킷의 알림 구성과 겹칠 때 “구성이 모호하게 정의되었습니다.” 라는 오류가 발생합니다.

다음 중 하나를 수행할 때 오류가 발생할 수 있습니다.

  • 최근에 삭제한 S3 이벤트 알림을 다시 생성합니다.
  • 겹치는 접두사 또는 접미사를 사용하여 여러 겹치는 이벤트에 대한 S3 이벤트 알림을 생성합니다.

참고: Amazon S3 이벤트 알림 구성은 접두사 또는 접미사가 겹치지 않는 중복 이벤트를 허용합니다. 이 구성에서는 접두사 또는 접미사가 겹치지 않는 이벤트도 허용합니다.

자세한 내용을 보려면 객체 키 이름 필터링을 사용하여 이벤트 알림 구성을 참조하세요.

해결 방법

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

현재 S3 버킷의 알림 구성을 검토하려면 다음 중 하나를 수행하세요.

다음 중 하나를 수행하세요.

겹치는 이벤트 제거

Amazon S3 콘솔에서 생성하려는 새 이벤트 알림과 겹치는 기존 이벤트 알림을 삭제합니다.

참고: Lambda 함수 트리거를 삭제해도 관련 S3 이벤트 알림은 자동으로 삭제되지 않습니다. 또한 접미사 제약 없이 새 트리거를 생성하기 전에 Amazon S3에서 알림을 삭제해야 합니다.

-또는-

AWS CLI를 사용하여 S3 버킷의 알림 구성 JSON 파일을 업데이트합니다. S3 버킷에 구성된 모든 이벤트 알림의 목록을 가져오려면 AWS CLI 명령 get-bucket-notification-configuration 명령을 실행합니다. 모든 S3 이벤트 알림을 제거하려면 다음과 비슷한 AWS CLI 명령 put-bucket-notification-configuration을 실행합니다.

참고: 버킷 이름을 bucket-name으로 바꿉니다.

aws s3api put-bucket-notification-configuration --bucket=<bucket-name> --notification-configuration="{}"

중복 이벤트 알림을 제거한 후 Amazon S3 콘솔 또는 AWS CLI 명령 put-bucket-notification-configuration 명령을 사용하여 새 알림을 추가할 수 있습니다.

새 알림을 재구성하세요.

접두사가 겹치지 않는 여러 이벤트가 중복되도록 S3 버킷 네임스페이스객체 키 이름을 변경합니다.

예를 들어 업로드된 이미지와 같이 겹치는 이벤트 객체가 이미지 파일 유형(접미사)에 따라 다른 S3 버킷 폴더(접두사)를 사용하도록 지정합니다.

  • S3://mybucket/uploadedJPEG
  • S3://mybucket/uploadedGIF

사용 사례에 맞게 재설계

중복을 피하도록 S3 이벤트 알림을 재구성할 수 없는 경우 아키텍처를 재설계하여 문제를 해결해 보세요.

예를 들면, 다음과 같습니다.

팁: 더 복잡한 아키텍처 및 프로세스의 경우 AWS Step Functions 상태 머신을 사용하여 워크플로를 설계하고 관리하세요. 자세한 내용은 AWS Step Functions 사용 사례단계 함수 자습서를 참조하세요.


관련 정보

Lambda 함수를 호출하기 위해 Amazon S3 이벤트 알림을 생성할 경우 "Unable to validate the following destination configurations"라는 오류가 발생하는 이유가 무엇인가요?

Amazon S3 이벤트 알림이 Lambda 함수를 호출하지 않는 이유가 무엇인가요?

아마존 S3와 함께 AWS Lambda 사용

튜토리얼: Amazon S3 트리거를 사용하여 Lambda 함수 간접 호출을 참조하세요.

AWS 공식
AWS 공식업데이트됨 일 년 전