Nachrichtenattribute an eine Amazon SQS SQS-Warteschlange senden - Amazon Simple Queue Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Nachrichtenattribute an eine Amazon SQS SQS-Warteschlange senden

Sie können strukturierte Metadaten (wie etwa Zeitstempel, geospatiale Daten, Signaturen und Kennungen) in Nachrichten einschließen, indem Sie Nachrichtenattribute verwenden. Weitere Informationen finden Sie unter Amazon-SQS-Nachrichtenattribute.

Bevor Sie den Beispielcode ausführen, stellen Sie sicher, dass Sie Ihre AWS Anmeldeinformationen festgelegt haben. Weitere Informationen finden Sie unter Einrichten von AWS Anmeldeinformationen und Region für die Entwicklung im AWS SDK for Java 2.x Entwicklerhandbuch.

Definieren von Attributen

Fügen Sie zum Definieren eines Attributs für eine Nachricht den folgenden Code hinzu, der den MessageAttributeValue-Datentyp verwendet. Weitere Informationen finden Sie unter Nachrichtenattributkomponenten und Datentypen für Nachrichtenattribute.

Der berechnet AWS SDK for Java automatisch die Prüfsummen für den Nachrichtentext und die Nachrichtenattribute und vergleicht sie mit den Daten, die Amazon SQS zurückgibt. Weitere Informationen finden Sie im AWS SDK for Java 2.x -Entwicklerhandbuch und in Berechnung des MD5-Nachrichtendigests für Nachrichtenattribute für andere Programmiersprachen.

String

Dieses Beispiel definiert ein String-Attribut mit der Bezeichnung Name und dem Wert Jane.

final Map<String, MessageAttributeValue> messageAttributes = new HashMap<>(); messageAttributes.put("Name", new MessageAttributeValue() .withDataType("String") .withStringValue("Jane"));
Number

Dieses Beispiel definiert ein Number-Attribut mit der Bezeichnung AccurateWeight und dem Wert 230.000000000000000001.

final Map<String, MessageAttributeValue> messageAttributes = new HashMap<>(); messageAttributes.put("AccurateWeight", new MessageAttributeValue() .withDataType("Number") .withStringValue("230.000000000000000001"));
Binary

Dieses Beispiel definiert ein Binary-Attribut mit dem Namen ByteArray und dem Wert eines nicht initialisierten 10-Byte-Arrays.

final Map<String, MessageAttributeValue> messageAttributes = new HashMap<>(); messageAttributes.put("ByteArray", new MessageAttributeValue() .withDataType("Binary") .withBinaryValue(ByteBuffer.wrap(new byte[10])));
String (custom)

Dieses Beispiel definiert das benutzerdefinierte Attribut String.EmployeeId mit der Bezeichnung EmployeeId und dem Wert ABC123456.

final Map<String, MessageAttributeValue> messageAttributes = new HashMap<>(); messageAttributes.put("EmployeeId", new MessageAttributeValue() .withDataType("String.EmployeeId") .withStringValue("ABC123456"));
Number (custom)

Dieses Beispiel definiert das benutzerdefinierte Attribut Number.AccountId mit der Bezeichnung AccountId und dem Wert 000123456.

final Map<String, MessageAttributeValue> messageAttributes = new HashMap<>(); messageAttributes.put("AccountId", new MessageAttributeValue() .withDataType("Number.AccountId") .withStringValue("000123456"));
Anmerkung

Da der Basisdatentyp Number ist, gibt die ReceiveMessage-Aktion 123456 zurück.

Binary (custom)

Dieses Beispiel definiert das benutzerdefinierte Attribut Binary.JPEG mit dem Namen ApplicationIcon und dem Wert eines nicht initialisierten 10-Byte-Arrays.

final Map<String, MessageAttributeValue> messageAttributes = new HashMap<>(); messageAttributes.put("ApplicationIcon", new MessageAttributeValue() .withDataType("Binary.JPEG") .withBinaryValue(ByteBuffer.wrap(new byte[10])));

Senden einer Nachricht mit Attributen

In diesem Beispiel werden die Attribute der SendMessageRequest hinzugefügt, bevor die Nachricht gesendet wird.

// Send a message with an attribute. final SendMessageRequest sendMessageRequest = new SendMessageRequest(); sendMessageRequest.withMessageBody("This is my message text."); sendMessageRequest.withQueueUrl(myQueueUrl); sendMessageRequest.withMessageAttributes(messageAttributes); sqs.sendMessage(sendMessageRequest);
Wichtig

Wenn Sie eine Nachricht an eine First-In-First-Out (FIFO)-Warteschlange senden, stellen Sie sicher, dass die sendMessage-Methode ausgeführt wird, nachdem Sie die Nachrichtengruppen-ID angeben.

Wenn Sie die SendMessageBatch-Aktion anstelle von SendMessage verwenden, müssen Sie Nachrichtenattribute für jede Nachricht in dem Stapel angeben.