Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menerapkan kebijakan filter langganan di Amazon SNS
Pemfilteran pesan di Amazon SNS memungkinkan Anda mengirimkan pesan secara selektif ke pelanggan berdasarkan kebijakan filter. Kebijakan ini menentukan kondisi yang harus dipenuhi pesan agar dikirimkan ke langganan. Meskipun pengiriman pesan mentah adalah opsi yang dapat memengaruhi pemrosesan pesan, filter langganan tidak diperlukan untuk berfungsi.
Anda dapat menerapkan kebijakan filter ke SNS langganan Amazon menggunakan SNS konsol Amazon. Atau, untuk menerapkan kebijakan secara terprogram, Anda dapat menggunakan Amazon SNSAPI, AWS Command Line Interface (AWS CLI), atau apa pun AWS SDK yang mendukung Amazon. SNS Anda juga bisa menggunakan AWS CloudFormation.
Mengaktifkan Pengiriman Pesan Mentah
Pengiriman pesan mentah memastikan bahwa muatan pesan dikirimkan apa adanya kepada pelanggan tanpa pengkodean atau transformasi tambahan. Ini dapat berguna ketika pelanggan memerlukan format pesan asli untuk diproses. Namun, pengiriman pesan mentah tidak terkait langsung dengan fungsionalitas filter berlangganan.
Menerapkan Filter Berlangganan
Untuk menerapkan filter pesan ke langganan, Anda menentukan kebijakan filter menggunakan JSON sintaks. Kebijakan ini menetapkan kondisi yang harus dipenuhi pesan untuk dikirimkan ke langganan. Filter dapat didasarkan pada atribut pesan, seperti atribut pesan, struktur pesan, atau bahkan konten pesan.
Hubungan antara Pengiriman Pesan Mentah dan Filter Berlangganan
Meskipun mengaktifkan pengiriman pesan mentah dapat memengaruhi cara pesan dikirim dan diproses oleh pelanggan, ini bukan prasyarat untuk menggunakan filter berlangganan. Namun, dalam skenario di mana pelanggan memerlukan format pesan asli tanpa modifikasi apa pun, mengaktifkan pengiriman pesan mentah mungkin bermanfaat bersama filter berlangganan.
Pertimbangan untuk Penyaringan Efektif
Saat menerapkan pemfilteran pesan, pertimbangkan persyaratan spesifik aplikasi dan pelanggan Anda. Tentukan kebijakan filter yang secara akurat sesuai dengan kriteria pengiriman pesan untuk memastikan distribusi pesan yang efisien dan ditargetkan.
penting
AWS Layanan seperti IAM dan Amazon SNS menggunakan model komputasi terdistribusi yang disebut konsistensi akhirnya. Penambahan atau perubahan kebijakan filter langganan memerlukan hingga 15 menit untuk diterapkan sepenuhnya.
AWS Management Console
Masuk ke SNSkonsol Amazon
. -
Di panel navigasi, pilih Berlangganan.
-
Pilih langganan dan kemudian pilih Edit.
-
Pada halaman Edit, perluas bagian Kebijakan filter Langganan.
-
Pilih antara pemfilteran berbasis atribut atau pemfilteran berbasis muatan.
-
Di bidang JSONeditor, berikan JSONisi kebijakan filter Anda.
-
Pilih Simpan perubahan.
Amazon SNS menerapkan kebijakan filter Anda ke langganan.
AWS CLI
Untuk menerapkan kebijakan filter dengan AWS Command Line Interface (AWS CLI), gunakan set-subscription-attributes
perintah, seperti yang ditunjukkan pada contoh berikut. Untuk opsi --attribute-name
, tentukan FilterPolicy
. Untuk--attribute-value
, tentukan JSONkebijakan Anda.
$
aws sns set-subscription-attributes --subscription-arn
arn:aws:sns: ...
--attribute-name FilterPolicy --attribute-value'{"store":["example_corp"],"event":["order_placed"]}'
Untuk memberikan valid JSON bagi kebijakan Anda, lampirkan nama dan nilai atribut dalam tanda kutip ganda. Anda juga harus menyertakan seluruh argumen kebijakan dalam tanda kutip. Untuk menghindari tanda kutip lolos, Anda dapat menggunakan tanda kutip tunggal untuk melampirkan kebijakan dan tanda kutip ganda untuk melampirkan JSON nama dan nilai, seperti yang ditunjukkan pada contoh di atas.
Jika Anda ingin beralih dari pemfilteran pesan berbasis atribut (default) ke pemfilteran pesan berbasis muatan, Anda juga dapat menggunakan perintah tersebut. set-subscription-attributes Untuk opsi --attribute-name
, tentukan FilterPolicyScope
. Untuk --attribute-value
, tentukan MessageBody
.
$
aws sns set-subscription-attributes --subscription-arn arn:aws:sns: ... --attribute-name FilterPolicyScope --attribute-value MessageBody
Untuk memverifikasi bahwa kebijakan filter diterapkan, gunakan perintah get-subscription-attributes
. Atribut dalam output terminal harus menunjukkan kebijakan filter Anda untuk kunci FilterPolicy
, seperti yang ditunjukkan dalam contoh berikut:
$
aws sns get-subscription-attributes --subscription-arn arn:aws:sns: ...
{
"Attributes": {
"Endpoint": "endpoint . . .",
"Protocol": "https",
"RawMessageDelivery": "false",
"EffectiveDeliveryPolicy": "delivery policy . . .",
"ConfirmationWasAuthenticated": "true",
"FilterPolicy": "{\"store\": [\"example_corp\"], \"event\": [\"order_placed\"]}",
"FilterPolicyScope": "MessageAttributes",
"Owner": "111122223333",
"SubscriptionArn": "arn:aws:sns: . . .",
"TopicArn": "arn:aws:sns: . . ."
}
}
AWS SDKs
Contoh kode berikut menunjukkan cara menggunakanSetSubscriptionAttributes
.
penting
Jika Anda menggunakan contoh SDK untuk Java 2.x, kelas tidak SNSMessageFilterPolicy
tersedia di luar kotak. Untuk petunjuk tentang cara menginstal kelas ini, lihat contoh
Amazon SNS API
Untuk menerapkan kebijakan filter dengan Amazon SNSAPI, buat permintaan untuk SetSubscriptionAttributes
tindakan tersebut. Setel AttributeName
parameter keFilterPolicy
, dan setel AttributeValue
parameter ke kebijakan filter AndaJSON.
Jika Anda ingin beralih dari pemfilteran pesan berbasis atribut (default) ke pemfilteran pesan berbasis muatan, Anda juga dapat menggunakan tindakan tersebut. SetSubscriptionAttributes
Atur AttributeName
parameter keFilterPolicyScope
, dan atur AttributeValue
parameternya keMessageBody
.
AWS CloudFormation
Untuk menerapkan kebijakan filter menggunakan AWS CloudFormation, gunakan YAML templat JSON atau untuk membuat AWS CloudFormation
tumpukan. Untuk informasi selengkapnya, lihat FilterPolicy
properti AWS::SNS::Subscription
sumber daya di Panduan AWS CloudFormation Pengguna dan AWS CloudFormation templat contoh
-
Masuk ke konsol AWS CloudFormation
tersebut. -
Pilih Buat Tumpukan.
-
Pada halaman Pilihan Templat, pilih Unggah templat ke Amazon S3, pilih templat file, dan pilih Selanjutnya.
-
Di halaman Tentukan Detail, lakukan hal berikut:
-
Untuk Nama Tumpukan, ketik
MyFilterPolicyStack
. -
Untuk myHttpEndpoint, ketik HTTP titik akhir untuk berlangganan topik Anda.
Tip
Jika Anda tidak memiliki HTTP titik akhir, buat satu.
-
-
Pada halaman Opsi, pilih Selanjutnya.
-
Di halaman Tinjau, pilih Buat.