Требуется отфильтровать и передать сообщения, если:
- Отсутствует атрибут источника
- Атрибут источника существует, и он должен быть любым, кроме SOME_STRING.
Политика подписки Amazon SNS принимает сообщения при следующих условиях.
1) Каждому имени атрибута в политике фильтра соответствует имя атрибута, назначенное сообщению.
2) Для каждого совпадающего имени атрибута существует как минимум одно совпадение между:
-> значениями имени атрибута в политике фильтра
-> атрибуты сообщения
Как вы можете видеть в данной документации для политик фильтра подписки SNS, любое сообщение, которое не содержит атрибут фильтрации, или еслизначение атрибута не соответствует политике, сообщение будет отклонено.
Согласно вашему примеру, вы CANNOT фильтруете и пропускаете сообщения, которые не содержататрибут «источник».Но вы можете фильтровать, если атрибут источника существует, и это должно быть что угодно, но не SOME_STRING.
Обходной путь для этого .
Предполагая, что у вас есть доступ к источнику, генерирующему сообщенияУбедитесь, что каждое сообщение содержит атрибут «источник», прежде чем отправлять его в SNS.Тогда вы можете легко отфильтровать, если это что-то, но SOME_STRING.