Mengirim atribut pesan ke antrian Amazon SQS - Amazon Simple Queue Service

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

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.

Sebelum Anda menjalankan kode contoh, pastikan Anda telah menetapkan AWS kredensialnya. Untuk informasi selengkapnya, lihat Mengatur AWS Kredensial dan Wilayah untuk Pengembangan di Panduan AWS SDK for Java 2.x Pengembang.

Mendefinisikan atribut

Untuk menentukan atribut pesan, tambahkan kode berikut, yang menggunakan tipe MessageAttributeValue data. Untuk informasi selengkapnya, lihat Komponen atribut pesan dan Tipe data atribut pesan.

AWS SDK for 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 dan Menghitung intisari pesan MD5 untuk atribut pesan untuk bahasa pemrograman lainnya.

String

Contoh ini mendefinisikan String atribut bernama Name dengan nilaiJane.

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 nilai230.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 nilaiABC123456.

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 nilai000123456.

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

Karena tipe data dasar adalahNumber, ReceiveMessage metode kembali123456.

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

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 antrean First-In-First-Out (FIFO), pastikan sendMessage metode dijalankan setelah Anda memberikan ID grup pesan.

Jika Anda menggunakan SendMessageBatch metode iniSendMessage, Anda harus menentukan atribut pesan untuk setiap pesan dalam batch.