GOOGLE ADS

Montag, 2. Mai 2022

Wie füge ich SQS-Nachrichtenattribute in einem SNS-Abonnement hinzu?

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

Warum werden SCHED_FIFO-Threads derselben physischen CPU zugewiesen, obwohl CPUs im Leerlauf verfügbar sind?

Lösung des Problems Wenn ich das richtig verstehe, versuchen Sie, SCHED_FIFO mit aktiviertem Hyperthreading ("HT") zu verwenden, ...