

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Mengirim atribut pesan ke antrian Amazon SQS
<a name="sqs-java-send-message-with-attributes"></a>

*Anda dapat menyertakan metadata terstruktur (seperti stempel waktu, data geospasial, tanda tangan, dan pengenal) dengan pesan menggunakan atribut pesan.* Untuk informasi selengkapnya, lihat [Atribut pesan Amazon SQS](sqs-message-metadata.md#sqs-message-attributes).

 Sebelum Anda menjalankan kode contoh, pastikan Anda telah menetapkan AWS kredensialnya. Untuk informasi selengkapnya, lihat [Mengatur AWS Kredensial dan Wilayah untuk Pengembangan](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/setup.html#setup-credentials) di Panduan *AWS SDK for Java 2.x Pengembang*. 

## Mendefinisikan atribut
<a name="sqs-java-define-attributes"></a>

Untuk menentukan atribut untuk pesan, tambahkan kode berikut, yang menggunakan tipe `[MessageAttributeValue](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_MessageAttributeValue.html)` data. Untuk informasi selengkapnya, lihat [Komponen atribut pesan](sqs-message-metadata.md#message-attribute-components) dan [Tipe data atribut pesan](sqs-message-metadata.md#message-attribute-data-types).

 AWS SDK untuk Java Secara otomatis menghitung checksum isi pesan dan atribut pesan dan membandingkannya dengan data yang dikembalikan Amazon SQS. Untuk informasi selengkapnya, lihat *[Panduan AWS SDK for Java 2.x Pengembang](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/)* dan [Menghitung intisari MD5 pesan untuk atribut pesan](sqs-message-metadata.md#sqs-attributes-md5-message-digest-calculation) untuk bahasa pemrograman lainnya.

------
#### [ String ]

Contoh ini mendefinisikan `String` atribut bernama `Name` dengan nilai`Jane`.

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

------
#### [ Number ]

Contoh ini mendefinisikan `Number` atribut bernama `AccurateWeight` dengan nilai`230.000000000000000001`.

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

------
#### [ Binary ]

Contoh ini mendefinisikan `Binary` atribut bernama `ByteArray` dengan nilai array 10-byte yang tidak diinisialisasi.

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

------
#### [ String (custom) ]

Contoh ini mendefinisikan atribut kustom `String.EmployeeId` bernama `EmployeeId` dengan nilai`ABC123456`.

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

------
#### [ Number (custom) ]

Contoh ini mendefinisikan atribut kustom `Number.AccountId` bernama `AccountId` dengan nilai`000123456`.

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

**catatan**  
Karena tipe data dasar adalah`Number`, `[ReceiveMessage](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html)` metode kembali`123456`.

------
#### [ Binary (custom) ]

Contoh ini mendefinisikan atribut kustom `Binary.JPEG` bernama `ApplicationIcon` dengan nilai array 10-byte yang tidak diinisialisasi.

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

------

## Mengirim pesan dengan atribut
<a name="sqs-java-send-attributes"></a>

Contoh ini menambahkan atribut ke `SendMessageRequest` sebelum mengirim pesan.

```
// 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);
```

**penting**  
Jika Anda mengirim pesan ke antrian First-In-First-Out (FIFO), pastikan `sendMessage` metode dijalankan *setelah* Anda memberikan ID grup pesan.  
Jika Anda menggunakan `[SendMessageBatch](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessageBatch.html)` metode, bukan`[SendMessage](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html)`, Anda harus menentukan atribut pesan untuk setiap pesan dalam batch.