Amazon 필터 정책 SNS 예제 - Amazon Simple Notification Service

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

Amazon 필터 정책 SNS 예제

다음 예제는 고객 트랜잭션을 처리하는 Amazon SNS 주제에서 제공하는 메시지 페이로드를 보여줍니다.

첫 번째 예에서 MessageAttributes 필드에는 트랜잭션을 설명하는 속성이 포함됩니다.

  • 고객의 관심사

  • 스토어 이름

  • 이벤트 상태

  • 의 구매 가격 USD

이 메시지에는 MessageAttributes 필드가 포함되어 있으므로, 구독의 FilterPolicyScopeMessageAttributes로 설정되어 있는 한 FilterPolicy가 설정된 주제 구독은 메시지를 선택적으로 수락 또는 거부할 수 있습니다. 메시지에 속성을 적용하는 방법에 대한 자세한 내용은 Amazon SNS 메시지 속성에서 확인하세요.

{ "Type": "Notification", "MessageId": "a1b2c34d-567e-8f90-g1h2-i345j67klmn8", "TopicArn": "arn:aws:sns:us-east-2:123456789012:MyTopic", "Message": "message-body-with-transaction-details", "Timestamp": "2019-11-03T23:28:01.631Z", "SignatureVersion": "4", "Signature": "signature", "UnsubscribeURL": "unsubscribe-url", "MessageAttributes": { "customer_interests": { "Type": "String.Array", "Value": "[\"soccer\", \"rugby\", \"hockey\"]" }, "store": { "Type": "String", "Value":"example_corp" }, "event": { "Type": "String", "Value": "order_placed" }, "price_usd": { "Type": "Number", "Value": "210.75" } } }

다음 예에서는 Message 필드(메시지 페이로드 또는 메시지 본문이라고도 함)에 포함된 동일한 속성을 보여줍니다. FilterPolicy를 포함하는 모든 주제 구독은 구독의 FilterPolicyScopeMessageBody로 설정되어 있는 한 메시지를 선택적으로 수락하거나 거부할 수 있습니다.

{ "Type": "Notification", "MessageId": "a1b2c34d-567e-8f90-g1h2-i345j67klmn8", "TopicArn": "arn:aws:sns:us-east-2:123456789012:MyTopic", "Message": "{ \"customer_interests\": [\"soccer\", \"rugby\", \"hockey\"], \"store\": \"example_corp\", \"event\":\"order_placed\", \"price_usd\":210.75 }", "Timestamp": "2019-11-03T23:28:01.631Z", "SignatureVersion": "4", "Signature": "signature", "UnsubscribeURL": "unsubscribe-url" }

다음 필터 정책은 속성 이름과 값을 기준으로 메시지를 수락하거나 거부합니다.

예제 메시지를 수락하는 정책

다음 구독 필터 정책의 속성이 예제 메시지에 지정된 속성과 일치합니다. 참고로 MessageAttributes 또는 MessageBody로 설정되었는지와 관계없이 FilterPolicyScope에 대해 동일한 필터 정책이 적용됩니다. 각 구독자는 주제에서 받는 메시지의 구성에 따라 필터링 범위를 선택합니다.

이 정책의 속성 중 하나가 메시지에 지정된 속성과 일치하지 않으면 정책은 해당 메시지를 거부합니다.

{ "store": ["example_corp"], "event": [{"anything-but": "order_cancelled"}], "customer_interests": [ "rugby", "football", "baseball" ], "price_usd": [{"numeric": [">=", 100]}] }

예제 메시지를 거부하는 정책

다음 구독 필터 정책의 속성과 예제 메시지에 지정된 속성이 서로 여러 가지가 불일치합니다. 예를 들어 encrypted 속성 이름이 메시지 속성에 없으므로 이 정책 속성은 할당된 값과 관계없이 메시지를 거부합니다.

불일치가 하나라도 있을 경우 정책은 해당 메시지를 거부합니다.

{ "store": ["example_corp"], "event": ["order_cancelled"], "encrypted": [false], "customer_interests": [ "basketball", "baseball" ] }