내용으로 건너뛰기

Lambda 함수를 트리거하기 위해 Amazon S3 이벤트 알림을 생성하려고 할 때 발생하는 "Configuration is ambiguously defined" 오류를 해결하려면 어떻게 해야 합니까?

3분 분량
0

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

간략한 설명

알림의 이벤트 정보와 해당 접두사 또는 접미사가 S3 버킷의 알림 구성과 겹칠 때 “Configuration is ambiguously defined 오류”가 발생합니다.

이 문제를 해결하려면 다음 작업 중 하나를 수행하십시오.

  • 중첩 이벤트를 제거하고 새 이벤트를 생성합니다.
  • 겹치는 접두사 또는 접미사가 있는 여러 중첩 이벤트에 대한 S3 이벤트 알림을 생성합니다.
  • 아키텍처를 재설계합니다.

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

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

해결 방법

참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하면 AWS CLI의 오류 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.

중첩 이벤트를 제거하고 새 이벤트 생성

중첩 이벤트 알림을 삭제하려면 Amazon S3 콘솔 또는 AWS CLI를 사용하십시오.

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

Amazon S3 콘솔

다음 단계를 완료하십시오.

  1. Amazon S3 콘솔을 열고 버킷을 선택합니다.
  2. 속성 탭을 선택합니다.
  3. 이벤트 알림에서 만들려고 했던 새 알림과 겹치는 이벤트 알림을 선택합니다.
  4. 삭제를 선택합니다.
  5. 이벤트 알림 생성을 선택합니다.
  6. Lambda 함수 드롭다운 목록에서 함수를 선택한 다음, 변경 사항 저장을 선택합니다.

AWS CLI

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

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

참고: your-bucket-name을 해당 버킷 이름으로 바꾸십시오.

중첩 이벤트 알림을 제거한 후 put-bucket-notification-configuration AWS CLI 명령을 실행하여 새 알림을 추가할 수 있습니다.

겹치는 접두사 또는 접미사가 있는 여러 중첩 이벤트에 대한 S3 이벤트 알림 생성

다음 단계를 완료하십시오.

  1. Amazon S3 콘솔을 열고 버킷을 선택합니다.
  2. 속성 탭을 선택합니다.
  3. 이벤트 알림에서 이벤트 알림 생성을 선택합니다.
  4. 이벤트 이름에 이벤트의 이름(예: your-event-name)을 입력합니다.
  5. 접두사에 접두사(예: images/)를 입력합니다.
  6. 접미사에 접미사(예: .jpg)를 입력합니다.
  7. 이벤트 유형에서 모든 객체 생성 이벤트를 선택합니다.
  8. Lambda 함수 드롭다운 목록에서 Lambda 함수를 선택합니다.
  9. 변경 사항 저장을 선택합니다.

아키텍처 재설계

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

예를 들어 S3 이벤트를 기반으로 다른 Lambda 함수를 트리거하는 Lambda 함수를 트리거하도록 이벤트 알림을 구성합니다. 또는 Amazon Simple Notification Service(Amazon SNS) 주제 또는 Amazon Simple Queue Service(Amazon SQS) 대기열에 이벤트를 게시하도록 이벤트 알림을 구성합니다.

참고: 주제 또는 대기열에서 구독한 여러 Lambda 함수에 이벤트를 푸시하는지 확인하십시오. 함수가 수신한 이벤트를 처리할지 여부를 결정하는 로직을 사용하여 구독 함수를 설계합니다. 자세한 내용은 여러 엔드포인트에 대한 팬아웃 S3 이벤트 알림을 참조하십시오.

AWS CloudTrail에 대한 Amazon S3 작업의 객체 수준 로깅을 활성화할 수도 있습니다. 그런 다음, Amazon EventBridge 규칙을 사용하여 Amazon S3 이벤트 패턴을 기반으로 Lambda 함수를 트리거합니다. 자세한 내용은 자습서: EventBridge를 사용하여 Amazon S3 객체 수준 작업 로깅을 참조하십시오.

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

관련 정보

Amazon S3 이벤트 알림을 생성할 때 "Unable to validate the following destination configurations" 오류가 발생하는 이유는 무엇입니까?

Amazon S3 이벤트 알림이 Lambda 함수를 호출하지 않는 문제를 해결하려면 어떻게 해야 합니까?

Lambda를 사용하여 Amazon S3 이벤트 알림 처리

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

AWS 공식업데이트됨 일 년 전
댓글 없음

관련 콘텐츠