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

Kami mengumumkan yang akan datang end-of-support untuk AWS SDK for JavaScript v2. Kami menyarankan Anda bermigrasi ke AWS SDK for JavaScript v3. Untuk tanggal, detail tambahan, dan informasi tentang cara bermigrasi, silakan merujuk ke pengumuman tertaut.

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 kode Node.js ini menunjukkan:

  • Cara mengirim pesan dalam antrian.

  • Cara menerima pesan dalam antrian.

  • Cara menghapus pesan dalam antrian.

Skenario

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

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

Tugas Prasyarat

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

Mengirim Pesan ke Antrian

Buat modul Node.js 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 yang ingin Anda kirimi pesan ini. Dalam contoh ini, pesan memberikan rincian tentang buku pada daftar buku fiksi terlaris termasuk judul, penulis, dan jumlah minggu dalam daftar.

Panggil metode sendMessage. Callback 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 contoh ini dapat ditemukan di sini GitHub.

Menerima dan Menghapus Pesan dari Antrian

Buat modul Node.js 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 dari mana Anda ingin menerima pesan. Dalam contoh ini, parameter menentukan penerimaan semua atribut pesan, serta penerimaan tidak lebih dari 10 pesan.

Panggil metode receiveMessage. Callback mengembalikan array Message objek dari mana Anda dapat mengambil ReceiptHandle untuk setiap pesan yang Anda gunakan untuk kemudian menghapus pesan itu. Buat objek JSON lain yang berisi parameter yang diperlukan untuk menghapus pesan, yang merupakan URL antrian dan nilainya. ReceiptHandle 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 contoh ini dapat ditemukan di sini GitHub.