Theo mặc định, subscriber topic Amazon SNS nhận được mọi message được xuất bản cho topic. Để nhận được một tập hợp con các message, subscriber phải chỉ định chính sách lọc cho topic đã đăng ký. Chính sách bộ lọc là một đối tượng JSON đơn giản chứa các thuộc tính xác định message nào mà subscriber nhận được.
Khi bạn xuất bản message cho một topic, Amazon SNS sẽ so sánh các thuộc tính message với các thuộc tính trong chính sách bộ lọc cho từng đăng ký của topic. Nếu bất kỳ thuộc tính nào khớp, Amazon SNS sẽ gửi message đến subscriber. Nếu không, Amazon SNS sẽ bỏ qua subscriber mà không gửi message.
Bạn có thể đơn giản hóa việc sử dụng Amazon SNS bằng cách hợp nhất các tiêu chí lọc message vào các topic đã đăng ký của mình. Điều này cho phép bạn giảm tải logic lọc message từ subscriber và logic định tuyến message từ các nhà xuất bản, loại bỏ nhu cầu lọc message bằng cách tạo một topic riêng biệt cho từng điều kiện. Bạn có thể sử dụng một topic duy nhất, phân biệt các message của mình bằng cách sử dụng các thuộc tính. Mỗi subscriber chỉ nhận và xử lý các message được chấp nhận bởi chính sách lọc của nó.
Trong phần này, bạn sẽ tạo hàng đợi SQS mới cho Đơn hàng ở EU và tạo đăng ký cho topic SNS Đơn hàng với chính sách bộ lọc để định tuyến từng thư đến hàng đợi SQS Đơn hàng ở EU. Để chỉ ra Đơn đặt hàng ở EU, bạn sẽ chỉ định một thuộc tính, vị trí, với một giá trị eu-west cho message.
Truy cập vào giao diện quản trị dịch vụ SQS
Trong giao diện Create queue
Orders-EU
Trong giao diện Orders tìm Orders-EU SQS queue subscription.
{
"location": [
"eu-west"
]
}
Sử dụng Event Generator để kiểm tra đẩy message.
Trong giao diện Event Generator
category
books
Trong giao diện Event Generator
attribute Type
, chọn Stringlocation
us-west
Trong giao diện Event Generator
attribute Type
, chọn Stringlocation
eu-west
Ở bước này chúng ta sẽ generate một message có attribute và value phù hợp với filter policy chúng ta đã thiết lập.
Xác nhận đẩy message thành công.