

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Kebijakan filter contoh Amazon SNS
<a name="example-filter-policies"></a>

Contoh berikut menunjukkan payload pesan yang dikirimkan oleh topik Amazon SNS yang memproses transaksi pelanggan.

Contoh pertama mencakup `MessageAttributes` bidang dengan atribut yang menggambarkan transaksi:
+ Minat pelanggan
+ Nama penyimpanan
+ State kejadian
+ Harga beli dalam USD

Karena pesan ini menyertakan `MessageAttributes` bidang, langganan topik apa pun yang menetapkan a `FilterPolicy` dapat menerima atau menolak pesan secara selektif, selama `FilterPolicyScope` disetel ke `MessageAttributes` dalam langganan. Untuk informasi tentang menerapkan atribut pada olahpesan, lihat [Atribut pesan Amazon SNS](sns-message-attributes.md).

```
{
   "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"
      }
   }
}
```

Contoh berikut menunjukkan atribut yang sama termasuk dalam `Message` bidang, juga disebut sebagai *payload pesan atau isi* *pesan*. Langganan topik apa pun yang menyertakan a `FilterPolicy` dapat menerima atau menolak pesan secara selektif, selama `FilterPolicyScope` diatur `MessageBody` dalam langganan. 

```
{
"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"
}
```

Kebijakan filter berikut menerima atau menolak pesan berdasarkan nama dan nilai properti mereka.

## Kebijakan yang menerima contoh olahpesan
<a name="policy-accepts-messages"></a>

Properti dalam kebijakan filter langganan berikut cocok dengan atribut yang ditetapkan ke pesan contoh. Perhatikan bahwa kebijakan filter yang sama berfungsi untuk `FilterPolicyScope` apakah itu disetel ke `MessageAttributes` atau`MessageBody`. Setiap pelanggan memilih ruang lingkup penyaringan mereka sesuai dengan komposisi pesan yang mereka terima dari topik.

Jika satu properti dalam kebijakan ini tidak cocok dengan atribut yang ditetapkan ke pesan, kebijakan akan menolak pesan tersebut.

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

## Kebijakan yang menolak contoh olahpesan
<a name="policy-rejects-messages"></a>

Kebijakan filter langganan berikut memiliki beberapa ketidakcocokan antara propertinya dan atribut yang ditetapkan ke pesan contoh. Misalnya, karena nama `encrypted` properti tidak ada dalam atribut pesan, properti kebijakan ini menyebabkan pesan ditolak terlepas dari nilai yang ditetapkan padanya. 

Jika terjadi ketidakcocokan, kebijakan menolak pesan.

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