Amazon SQS, Amazon SNS, 그리고 Lambda 사용

Amazon SQS, Amazon SNS, 그리고 Lambda 사용

알림 활성화는 버킷 수준 작업이에요. 버킷에 연결된 알림 하위 리소스(notification subresource)에 알림 구성 정보를 저장해요. 버킷 알림 구성을 만들거나 변경한 뒤 그 변경 사항이 적용되기까지는 보통 약 5분이 걸려요. 알림이 처음 활성화되면 s3:TestEvent가 발생해요.

출처: Using Amazon SQS, Amazon SNS, and Lambda

본문

다음 방법 중 하나로 알림 구성을 관리할 수 있어요.

코드에서 Amazon S3 REST API를 직접 호출할 수도 있어요. 하지만 그러려면 요청을 인증하는 코드를 직접 작성해야 하므로 번거로울 수 있어요.

어떤 방법을 쓰든 Amazon S3는 알림 구성을 버킷에 연결된 알림 하위 리소스에 XML로 저장해요. 버킷 하위 리소스에 대한 정보는 일반 목적 버킷 구성 옵션을 참고하세요.

삭제된 대상 때문에 이벤트 알림 여러 건이 실패했다면, 그것들을 삭제하려 할 때 "Unable to validate the following destination configurations" 오류를 받을 수 있어요. S3 콘솔에서 실패한 알림을 모두 동시에 삭제하면 해결할 수 있어요.

프로그래밍 방식으로 이벤트 알림 구성

기본적으로 어떤 유형의 이벤트에 대해서도 알림이 활성화되어 있지 않아요. 따라서 알림 하위 리소스는 처음에 빈 구성을 저장해요.

<NotificationConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
</NotificationConfiguration>

특정 유형의 이벤트에 대한 알림을 활성화하려면, Amazon S3가 게시할 이벤트 유형과 이벤트를 게시할 대상을 식별하는 적절한 구성으로 XML을 교체해요. 각 대상에 대해 해당 XML 구성을 추가해요.

SQS 대기열로 이벤트 메시지를 게시하려면 하나 이상의 이벤트 유형에 대한 알림 대상으로 SQS 대기열을 설정하려면 QueueConfiguration을 추가하세요.

<NotificationConfiguration>
  <QueueConfiguration>
    <Id> optional-id-string </Id>
    <Queue> sqs-queue-arn </Queue>
    <Event> event-type </Event>
    <Event> event-type </Event>
     ...
  </QueueConfiguration>
   ...
</NotificationConfiguration>

SNS 주제로 이벤트 메시지를 게시하려면 특정 이벤트 유형에 대한 알림 대상으로 SNS 주제를 설정하려면 TopicConfiguration을 추가하세요.

<NotificationConfiguration>
  <TopicConfiguration>
     <Id> optional-id-string </Id>
     <Topic> sns-topic-arn </Topic>
     <Event> event-type </Event>
     <Event> event-type </Event>
      ...
  </TopicConfiguration>
   ...
</NotificationConfiguration>

AWS Lambda 함수를 호출하고 이벤트 메시지를 인자로 제공하려면 특정 이벤트 유형에 대한 알림 대상으로 Lambda 함수를 설정하려면 CloudFunctionConfiguration을 추가하세요.

<NotificationConfiguration>
  <CloudFunctionConfiguration>  
     <Id> optional-id-string </Id>   
     <CloudFunction> cloud-function-arn </CloudFunction>       
     <Event> event-type </Event>     
     <Event> event-type </Event>     
      ...  
  </CloudFunctionConfiguration>
   ...
</NotificationConfiguration>

버킷에 구성된 모든 알림을 제거하려면 알림 하위 리소스에 빈 <NotificationConfiguration/> 요소를 저장하세요.

Amazon S3가 특정 유형의 이벤트를 감지하면 이벤트 정보와 함께 메시지를 게시해요. 자세한 내용은 이벤트 메시지 구조를 참고하세요.

이벤트 알림 구성에 대한 자세한 내용은 다음 주제를 참고하세요.

더 알아보기