View a markdown version of this page

Mengirim dan Menerima Pesan di Amazon SQS - AWS SDK untuk JavaScript

AWS SDK untuk JavaScript V2 telah mencapai akhir dukungan. Kami menyarankan Anda bermigrasi ke AWS SDK untuk JavaScript v3. Untuk detail dan informasi tambahan tentang cara bermigrasi, silakan lihat pengumuman ini.

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

Mengirim dan Menerima Pesan di Amazon SQS

JavaScript code example that applies to Node.js execution

Contoh Node.js kode ini menunjukkan:

  • Cara mengirim pesan dalam antrian.

  • Cara menerima pesan dalam antrian.

  • Cara menghapus pesan dalam antrian.

Skenario

Dalam contoh ini, serangkaian Node.js modul digunakan untuk mengirim dan menerima pesan. Node.js Modul menggunakan SDK JavaScript untuk mengirim dan menerima pesan dengan menggunakan metode kelas AWS.SQS klien berikut:

Untuk informasi selengkapnya tentang pesan Amazon SQS, lihat Mengi rim Pesan ke Antrian Amazon SQS dan Menerima dan Menghapus Pesan dari Antrian Amazon SQS di Panduan Pengembang Layanan Antrian Sederhana Amazon.

Tugas Prasyarat

Untuk mengatur dan menjalankan contoh ini, Anda harus menyelesaikan tugas ini terlebih dahulu:

Mengirim Pesan ke Antrian

Buat Node.js modul dengan nama filesqs_sendmessage.js. Pastikan untuk mengkonfigurasi SDK seperti yang ditunjukkan sebelumnya. Untuk mengakses Amazon SQS, buat objek AWS.SQS layanan. Buat objek JSON yang berisi parameter yang diperlukan untuk pesan Anda, termasuk URL antrian tempat Anda ingin mengirim pesan ini. Dalam contoh ini, pesan memberikan rincian tentang buku pada daftar buku terlaris fiksi termasuk judul, penulis, dan jumlah minggu dalam daftar.

Panggil metode sendMessage. Panggilan balik mengembalikan ID unik pesan.

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create an SQS service object var sqs = new AWS.SQS({ apiVersion: "2012-11-05" }); var params = { // Remove DelaySeconds parameter and value for FIFO queues DelaySeconds: 10, MessageAttributes: { Title: { DataType: "String", StringValue: "The Whistler", }, Author: { DataType: "String", StringValue: "John Grisham", }, WeeksOn: { DataType: "Number", StringValue: "6", }, }, MessageBody: "Information about current NY Times fiction bestseller for week of 12/11/2016.", // MessageDeduplicationId: "TheWhistler", // Required for FIFO queues // MessageGroupId: "Group1", // Required for FIFO queues QueueUrl: "SQS_QUEUE_URL", }; sqs.sendMessage(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data.MessageId); } });

Untuk menjalankan contoh, ketik berikut ini di baris perintah.

node sqs_sendmessage.js

Kode sampel ini dapat ditemukan di sini GitHub.

Menerima dan Menghapus Pesan dari Antrian

Buat Node.js modul dengan nama filesqs_receivemessage.js. Pastikan untuk mengkonfigurasi SDK seperti yang ditunjukkan sebelumnya. Untuk mengakses Amazon SQS, buat objek AWS.SQS layanan. Buat objek JSON yang berisi parameter yang diperlukan untuk pesan Anda, termasuk URL antrian tempat Anda ingin menerima pesan. Dalam contoh ini, parameter menentukan penerimaan semua atribut pesan, serta penerimaan tidak lebih dari 10 pesan.

Panggil metode receiveMessage. Panggilan balik mengembalikan array Message objek dari mana Anda dapat mengambil ReceiptHandle untuk setiap pesan yang Anda gunakan untuk menghapus pesan itu nanti. Buat objek JSON lain yang berisi parameter yang diperlukan untuk menghapus pesan, yang merupakan URL antrian dan nil ReceiptHandle ainya. Panggil deleteMessage metode untuk menghapus pesan yang Anda terima.

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create an SQS service object var sqs = new AWS.SQS({ apiVersion: "2012-11-05" }); var queueURL = "SQS_QUEUE_URL"; var params = { AttributeNames: ["SentTimestamp"], MaxNumberOfMessages: 10, MessageAttributeNames: ["All"], QueueUrl: queueURL, VisibilityTimeout: 20, WaitTimeSeconds: 0, }; sqs.receiveMessage(params, function (err, data) { if (err) { console.log("Receive Error", err); } else if (data.Messages) { var deleteParams = { QueueUrl: queueURL, ReceiptHandle: data.Messages[0].ReceiptHandle, }; sqs.deleteMessage(deleteParams, function (err, data) { if (err) { console.log("Delete Error", err); } else { console.log("Message Deleted", data); } }); } });

Untuk menjalankan contoh, ketik berikut ini di baris perintah.

node sqs_receivemessage.js

Kode sampel ini dapat ditemukan di sini GitHub.