Die Dokumentation für AWS SNS und SQS enthält Abschnitte zu Nachrichtenattributen. Aber es gibt keine Erklärung, wie man SQS- Nachrichtenattribute hat, wenn diese Warteschlange ein SNS-Thema abonniert hat.
Gibt es eine Möglichkeit, AWS SNS so zu konfigurieren, dass den SQS-Nachrichten, die über das Abonnement gesendet werden, bestimmte Nachrichtenattribute hinzugefügt werden?
Lösung des Problems
Hinweis: Sehen Sie sich die andere Antwort für eine bessere Antwort an, indem Sie Raw Message Delivery verwenden
Während die Dokumentation Verwenden von Amazon SNS-Nachrichtenattributen Amazon SNS-Nachrichtenattribute an Amazon SQS sendet, scheint es, dass die Attribute im Nachrichtentext gesendet werden und nicht als Nachrichtenattribute an die resultierenden Amazon SQS-Nachrichten angehängt werden.
Ich habe zum Beispiel folgendes gemacht:
- Ein Amazon SNS-Thema erstellt
- Erstellt eine Amazon SQS-Warteschlange und abonniert sie für das SNS-Thema
- Eine Nachricht an SNS veröffentlicht
Ich habe über die AWS Command-Line Interface (CLI) veröffentlicht:
aws sns publish --topic-arn arn:aws:sns:ap-southeast-2:123456789012:foo --message msg --subject subj --message-attributes '{"somename": { "DataType":"String", "StringValue":"somevalue"}}'
(Ich habe Syntaxhilfe vom Kartendatentyp in aws cli erhalten. )
Die resultierende Nachricht in SQS zeigte die Attribute als Teil der Nachricht:
{
"Type": "Notification",
"MessageId": "53e3adad-723a-5eae-a7b7-fc0468ec2d37",
"TopicArn": "arn:aws:sns:ap-southeast-2:123456789012:foo",
"Subject": "subj",
"Message": "msg",
"Timestamp": "2017-05-29T12:48:22.186Z",
...
"MessageAttributes": {
"somename": {"Type":"String","Value":"somevalue"}
}
}
Es wäre viel schöner, wenn diese Attribute als offizielle SQS-Attribute an die SQS-Nachricht angehängt würden. Leider scheint dies nicht der Fall zu sein.
Keine Kommentare:
Kommentar veröffentlichen