Pilih preferensi cookie Anda

Kami menggunakan cookie penting serta alat serupa yang diperlukan untuk menyediakan situs dan layanan. Kami menggunakan cookie performa untuk mengumpulkan statistik anonim sehingga kami dapat memahami cara pelanggan menggunakan situs dan melakukan perbaikan. Cookie penting tidak dapat dinonaktifkan, tetapi Anda dapat mengklik “Kustom” atau “Tolak” untuk menolak cookie performa.

Jika Anda setuju, AWS dan pihak ketiga yang disetujui juga akan menggunakan cookie untuk menyediakan fitur situs yang berguna, mengingat preferensi Anda, dan menampilkan konten yang relevan, termasuk iklan yang relevan. Untuk menerima atau menolak semua cookie yang tidak penting, klik “Terima” atau “Tolak”. Untuk membuat pilihan yang lebih detail, klik “Kustomisasi”.

Logika DAN/ATAU

Mode fokus
Logika DAN/ATAU - Amazon Simple Notification Service

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

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

Gunakan logika DAN/ATAU dalam kebijakan filter untuk mencocokkan atribut pesan atau properti isi pesan di Amazon SNS. Ini memungkinkan penyaringan pesan yang lebih tepat dan fleksibel.

Logika DAN

Anda dapat menerapkan logika AND menggunakan beberapa nama properti.

Pertimbangkan kebijakan berikut:

{ "customer_interests": ["rugby"], "price_usd": [{"numeric": [">", 100]}] }

Ini cocok dengan atribut pesan atau properti badan pesan dengan nilai customer_interests set ke rugby dan nilai price_usd set ke angka yang lebih besar dari 100.

catatan

Anda tidak dapat menerapkan logika AND ke nilai atribut yang sama.

Logika ATAU

Anda dapat menerapkan logika OR dengan menetapkan beberapa nilai ke nama properti.

Pertimbangkan kebijakan berikut:

{ "customer_interests": ["rugby", "football", "baseball"] }

Ini cocok dengan atribut pesan atau properti badan pesan dengan nilai customer_interests set kerugby,football, ataubaseball.

ATAU operator

Anda dapat menggunakan "$or" operator untuk secara eksplisit menentukan kebijakan filter untuk mengekspresikan hubungan OR antara beberapa atribut dalam kebijakan.

Amazon SNS hanya mengenali "$or" hubungan ketika kebijakan telah memenuhi semua persyaratan berikut. Ketika semua kondisi ini tidak terpenuhi, "$or" diperlakukan sebagai nama atribut reguler, sama seperti string lain dalam kebijakan.

  • Ada atribut "$or" bidang dalam aturan diikuti dengan array, misalnya“$or” : [].

  • Setidaknya ada 2 objek dalam "$or" array:"$or": [{}, {}].

  • Tak satu pun dari objek dalam "$or" array memiliki nama bidang yang merupakan kata kunci cadangan.

Jika "$or" tidak, diperlakukan sebagai nama atribut normal, sama seperti string lain dalam kebijakan.

Kebijakan berikut tidak diuraikan sebagai hubungan OR karena numerik dan awalan adalah kata kunci yang dicadangkan.

{ "$or": [ {"numeric" : 123}, {"prefix": "abc"} ] }

ORcontoh operator

StandarOR:

{ "source": [ "aws.cloudwatch" ], "$or": [ { "metricName": [ "CPUUtilization" ] }, { "namespace": [ "AWS/EC2" ] } ] }

Logika filter untuk kebijakan ini adalah:

"source" && ("metricName" || "namespace")

Ini cocok dengan salah satu dari set atribut pesan berikut:

"source": {"Type": "String", "Value": "aws.cloudwatch"}, "metricName": {"Type": "String", "Value": "CPUUtilization"}

atau

"source": {"Type": "String", "Value": "aws.cloudwatch"}, "namespace": {"Type": "String", "Value": "AWS/EC2"}

Ini juga cocok dengan salah satu badan pesan berikut:

{ "source": "aws.cloudwatch", "metricName": "CPUUtilization" }

atau

{ "source": "aws.cloudwatch", "namespace": "AWS/EC2" }

Kendala kebijakan yang mencakup hubungan OR

Pertimbangkan kebijakan berikut:

{ "source": [ "aws.cloudwatch" ], "$or": [ { "metricName": [ "CPUUtilization", "ReadLatency" ] }, { "metricType": [ "MetricType" ] , "$or" : [ { "metricId": [ 1234, 4321 ] }, { "spaceId": [ 1000, 2000, 3000 ] } ] } ] }

Logika untuk kebijakan ini juga dapat disederhanakan sebagai:

("source" AND "metricName") OR ("source" AND "metricType" AND "metricId") OR ("source" AND "metricType" AND "spaceId")

Perhitungan kompleksitas untuk kebijakan dengan hubungan OR dapat disederhanakan sebagai jumlah kompleksitas kombinasi untuk setiap pernyataan OR.

Kombinasi total dihitung sebagai berikut:

(source * metricName) + (source * metricType * metricId) + (source * metricType * spaceId) = (1 * 2) + (1 * 1 * 2) + (1 * 1 * 3) = 7

sourcememiliki satu nilai, metricName memiliki dua nilai, metricType memiliki satu nilai, metricId memiliki dua nilai dan spaceId memiliki tiga nilai.

Pertimbangkan kebijakan filter bersarang berikut:

{ "$or": [ { "metricName": [ "CPUUtilization", "ReadLatency" ] }, { "namespace": [ "AWS/EC2", "AWS/ES" ] } ], "detail" : { "scope" : [ "Service" ], "$or": [ { "source": [ "aws.cloudwatch" ] }, { "type": [ "CloudWatch Alarm State Change"] } ] } }

Logika untuk kebijakan ini dapat disederhanakan sebagai:

("metricName" AND ("detail"."scope" AND "detail"."source") OR ("metricName" AND ("detail"."scope" AND "detail"."type") OR ("namespace" AND ("detail"."scope" AND "detail"."source") OR ("namespace" AND ("detail"."scope" AND "detail"."type")

Perhitungan untuk kombinasi total adalah sama untuk kebijakan non-bersarang kecuali kita perlu mempertimbangkan tingkat bersarang kunci.

Kombinasi total dihitung sebagai berikut:

(2 * 2 * 2) + (2 * 2 * 2) + (2 * 2 * 2) + (2 * 2 * 2) = 32

metricNamememiliki dua nilai, namespace memiliki dua nilai, scope adalah kunci bersarang dua tingkat dengan satu nilai, source adalah kunci bersarang dua tingkat dengan satu nilai, dan type merupakan kunci bersarang dua tingkat dengan satu nilai.

Di halaman ini

PrivasiSyarat situsPreferensi cookie
© 2025, Amazon Web Services, Inc. atau afiliasinya. Semua hak dilindungi undang-undang.