기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon 필터 정책 SNS 예제
다음 예제는 고객 트랜잭션을 처리하는 Amazon SNS 주제에서 제공하는 메시지 페이로드를 보여줍니다.
첫 번째 예에서 MessageAttributes
필드에는 트랜잭션을 설명하는 속성이 포함됩니다.
-
고객의 관심사
-
스토어 이름
-
이벤트 상태
-
의 구매 가격 USD
이 메시지에는 MessageAttributes
필드가 포함되어 있으므로, 구독의 FilterPolicyScope
가 MessageAttributes
로 설정되어 있는 한 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
를 포함하는 모든 주제 구독은 구독의 FilterPolicyScope
가 MessageBody
로 설정되어 있는 한 메시지를 선택적으로 수락하거나 거부할 수 있습니다.
{
"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"
]
}