Standardmäßig codiert boto Nachrichten mit Base64, bevor die Nachrichten an SQS gesendet werden. Beispielcode:
%Vor%Indem ich Message () durch RawMessage () ersetze, kann ich unformatierte Nachrichten ohne Verschlüsselung an die Warteschlange senden. Aber wie lese ich Nachrichten aus der Warteschlange ohne Decodierung? Wenn ich den folgenden Code verwende:
%Vor%m.get_body () gibt das decodierte Ergebnis automatisch zurück. Gibt es eine Möglichkeit, unbearbeitete Nachrichten abzurufen?
Danke!
Der Konstruktor von boto.sqs.queue.Queue
hat ein Argument message_class
, das Sie auf RawMessage
setzen können. Auf der anderen Seite sehe ich nicht, warum es Sinn machen könnte, diese Daten vor der Übertragung nicht zu kodieren.
Tatsächlich erbt Message
class von RawMessage
, also hat es alle Methoden.
Eine dieser Methoden ist:
Diese Methode ist eine halbprivate Methode, die von Queue.write verwendet wird Methode, wenn der Inhalt der Nachricht an SQS geschrieben wird. Du wahrscheinlich sollte diese Methode nicht im normalen Ablauf der Ereignisse aufrufen müssen.
Tags und Links python amazon-web-services boto amazon-sqs