Gewusst wie: hinzufügen SQS-message-Attribute in SNS-Abonnement?
In der Dokumentation für AWS-SNS und SQS haben die Abschnitte über message-Attribute. Aber es gibt keine Erklärung, wie SQS message-Attribute, wenn die Warteschlange ist abonniert, um ein SNS-Thema.
Gibt es eine Möglichkeit zum konfigurieren der AWS SNS hinzufügen insbesondere message-Attribute, um die SQS-Nachrichten senden Sie über das Abonnement?
- Wenn Sie eine Amazon SQS-Warteschlange angemeldet ist ein Amazon SNS-Thema, das SQS-Nachricht enthält die Nachricht gesendet (und weitergeleitet) SNS. Was insbesondere die Attribute haben, die Sie wollen?
- "SQS-Message-Attribute" ist eine Sache. Vom Nachrichtentext getrennt.
- Das ist richtig. Allerdings, wenn SNS sendet eine Nachricht an SQS, füllt es die SQS-message-body. Welche Eigenschaften von SNS wurden Sie in der Hoffnung, besiedelten Sie wie eine SQS-message-Attribut?
- Ich möchte bestimmte vordefinierte Attribute für die SQS-Nachrichten aus diesem SNS-Thema. Zum Beispiel Nachrichten auf ein Thema hinzufügen würde, ein Attribut
path: foo
, einem anderen SNS-Thema, das senden der gleichen SQS-Warteschlange hinzufügen würde, ein Attributpath: bar
. Nach docs.aws.amazon.com/sns/latest/dg/SNSMessageAttributes.html es scheint eine Referenz, aber sonst nichts dokumentiert ist.*Important* To use message attributes with Amazon SQS endpoints, you must set the subscription attribute, Raw Message Delivery, to True.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Während der Mit Amazon SNS-Message-Attribute Dokumentation sendet Amazon SNS von message-Attributen zu Amazon SQS, es scheint, dass die Attribute sind geschickt in die Körper der Nachricht eher als angebracht, da von message-Attributen auf die resultierende Amazon SQS-Nachrichten.
Zum Beispiel habe ich die folgenden:
Veröffentlichte ich über die AWS Command Line Interface (CLI):
(Ich bekam syntax-Hilfe aus map-Datentyp in aws cli)
Die resultierende Nachricht in SQS zeigte die Attribute als Teil der Nachricht:
Es wäre viel schöner, wenn diese Attribute angehängt wurden, um die SQS-Nachricht als offizielle SQS-Attribute. Ach, es scheint, dies ist nicht der Fall.
Aws-Dokumentation:
Hinzugefügt, ein Beispiel aus dem real-life-Projekt. Hoffentlich hilft es, Klarheit zu schaffen.
Die Nachricht veröffentlicht, um die sns-Thema ist folgende:
Aktivieren Raw-Lieferung ist false (default). Die empfangene Nachricht durch die sqs enthält nur Inhalte, es gibt keine Attribute
Aktivieren Raw-Lieferung ist wahr. Die Nachricht enthält message-Attribute und richtigen Inhalt
Raw message delivery
wird "pass" - Nachricht Attribute von SNS, SQS als eigentliche message-Attribute, anstatt als Teil des Körpers.Aktiviert Raw-message delivery-Typ beim hinzufügen SQS-Abonnement für das Thema innen-SNS -