Из документации я понимаю, что официально AWS SQS не поддерживает "String.Array", что, согласно документации SNS
, относится к атрибутам.Я перепробовал несколько тестов и больше не уверен, что говорит доктор, а что я наблюдаю.Я создал две очереди Q1
и Q2
, которые подписываются на мою тему topic
.
Вкл. Q1
Я установил фильтр с помощью json как
jsonFilterString={"\"event\"":["\"[event1]\""}
Вкл. Q2
, я не установил никаких фильтров.Теперь, когда я отправляю SNS с ключом event
, обе очереди получают его, как и ожидалось.Когда я удаляю ключ event
, только Q2
получает его, что ожидается.
Проблема возникает, если я добавляю этот ключ в атрибут сообщения SNS
"items":"[item1 item2 item3]"
По сути, я создаю срез GoLang, а затем добавляю его в качестве атрибута сообщения.Удивительно, но Q2
получает его отлично, а в интерфейсе AWS SNS оно отображается под Message Attributes
для сообщения.Однако Q1
не получает его.
Это из-за фильтрации или по каким-то другим причинам, например из документов, я понимаю, что SQS официально не поддерживает String.Array
?