

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
<a name="sqs-java-send-message-with-attributes"></a>

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](sqs-message-metadata.md#sqs-message-attributes).

 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](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/setup.html#setup-credentials) im *AWS SDK for Java 2.x Entwicklerhandbuch*. 

## Definieren von Attributen
<a name="sqs-java-define-attributes"></a>

Fügen Sie zum Definieren eines Attributs für eine Nachricht den folgenden Code hinzu, der den `[MessageAttributeValue](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_MessageAttributeValue.html)`-Datentyp verwendet. Weitere Informationen erhalten Sie unter [Nachrichtenattributkomponenten](sqs-message-metadata.md#message-attribute-components) und [Datentypen für Nachrichtenattribute](sqs-message-metadata.md#message-attribute-data-types).

Der berechnet AWS SDK für 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](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/)* und in [Berechnung des MD5 Message Digest für Nachrichtenattribute](sqs-message-metadata.md#sqs-attributes-md5-message-digest-calculation) 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](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html)`-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
<a name="sqs-java-send-attributes"></a>

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 angegeben haben.  
Wenn Sie die `[SendMessageBatch](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessageBatch.html)`-Aktion anstelle von `[SendMessage](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html)` verwenden, müssen Sie Nachrichtenattribute für jede Nachricht in dem Stapel angeben.