Amazon SNS 원시 메시지 전송 - Amazon Simple Notification Service

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon SNS 원시 메시지 전송

Amazon Data Firehose, Amazon SQS 및 HTTP/S 엔드포인트에서 메시지의 JSON 형식을 처리하지 않도록 하기 위해 Amazon SNS는 원시 메시지 전송을 허용합니다.

  • Amazon Data Firehose 또는 Amazon SQS 엔드포인트에 대해 원시 메시지 전송을 활성화하면 게시된 메시지에서 모든 Amazon SNS 메타데이터가 제거되고 메시지가 있는 그대로 전송됩니다.

  • HTTP/S 엔드포인트에 대해 원시 메시지 전송을 활성화하면 값이 true로 설정된 HTTP 헤더 x-amz-sns-rawdelivery가 메시지에 추가됩니다. 이는 메시지가 JSON 형식 지정 없이 게시되었음을 나타냅니다.

  • HTTP/S 엔드포인트에 대해 원시 메시지 전송을 활성화하면 메시지 본문, 클라이언트 IP 및 필수 헤더가 전송되지만, 메시지 속성을 지정하면 전송되지 않습니다.

  • Firehose 엔드포인트에 대해 원시 메시지 전송을 활성화하면 메시지 본문이 전달됩니다. 메시지 속성을 지정하면 전송되지 않습니다.

AWS SDK를 사용하여 원시 메시지 전송을 활성화하려면 SetSubscriptionAttribute API 작업을 사용하고 속성 값을 로 설정해야 합니다. RawMessageDelivery true

AWS Management Console을 사용한 원시 메시지 전송 활성화

  1. Amazon SNS 콘솔에 로그인합니다.

  2. 탐색 창에서 주제(Topics)를 선택합니다.

  3. 주제 페이지에서 Firehose, Amazon SQS 또는 HTTP/S 엔드포인트에 구독하는 주제를 선택합니다.

  4. MyTopic페이지의 구독 섹션에서 구독을 선택하고 편집을 선택합니다.

  5. Edit EXAMPLE1-23bc-4567-d890-ef12g3hij456(예제 1-23bc-4567-d890-ef12g3hij456 편집) 페이지의 세부 정보 섹션에서 Enable raw message delivery(원시 메시지 전송 활성화)를 선택합니다.

  6. 변경 사항 저장를 선택합니다.

메시지 형식 예제

다음 예에서는 동일한 메시지가 동일한 Amazon SQS 대기열로 두 번 전송됩니다. 유일한 차이점은 원시 메시지 전송이 첫 번째 메시지에 대해 사용 중지되고 두 번째 메시지에 대해 사용된다는 것입니다.

  • 원시 메시지 전송이 사용 중지됨

    { "Type": "Notification", "MessageId": "dc1e94d9-56c5-5e96-808d-cc7f68faa162", "TopicArn": "arn:aws:sns:us-east-2:111122223333:ExampleTopic1", "Subject": "TestSubject", "Message": "This is a test message.", "Timestamp": "2021-02-16T21:41:19.978Z", "SignatureVersion": "1", "Signature": "FMG5tlZhJNHLHUXvZgtZzlk24FzVa7oX0T4P03neeXw8ZEXZx6z35j2FOTuNYShn2h0bKNC/zLTnMyIxEzmi2X1shOBWsJHkrW2xkR58ABZF+4uWHEE73yDVR4SyYAikP9jstZzDRm+bcVs8+T0yaLiEGLrIIIL4esi1llhIkgErCuy5btPcWXBdio2fpCRD5x9oR6gmE/rd5O7lX1c1uvnv4r1Lkk4pqP2/iUfxFZva1xLSRvgyfm6D9hNklVyPfy+7TalMD0lzmJuOrExtnSIbZew3foxgx8GT+lbZkLd0ZdtdRJlIyPRP44eyq78sU0Eo/LsDr0Iak4ZDpg8dXg==", "SigningCertURL": "https://sns.us-east-2.amazonaws.com/SimpleNotificationService-010a507c1833636cd94bdb98bd93083a.pem", "UnsubscribeURL": "https://sns.us-east-2.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:us-east-2:111122223333:ExampleTopic1:e1039402-24e7-40a3-a0d4-797da162b297" }
  • 원시 메시지 전송이 사용됨

    This is a test message.

Amazon SQS 구독의 메시지 속성 및 원시 메시지 전송

Amazon SNS는 메시지 속성 전송을 지원하므로 메시지에 대한 타임스탬프, 지리 공간 데이터, 서명 및 식별자와 같은 정형 메타데이터 항목을 제공할 수 있습니다. 원시 메시지 전송이 활성화된 Amazon SQS 구독의 경우 최대 10개의 메시지 속성을 전송할 수 있습니다. 10개 이상의 메시지 속성을 전송하려면 원시 메시지 전송을 비활성화해야 합니다. 하지만 Amazon SNS는 원시 메시지 전송이 활성화된 상태에서 Amazon SQS 구독으로 향하는 메시지 속성이 10개 이상인 메시지를 삭제하여 클라이언트 측 오류로 간주합니다.