AWS SDK for Node.jsでSQSメッセージを任意のQueueに発行したり、逆にメッセージを受信するにはsendMessage
とreceiveMessage
を使用します。
1. 任意のQueueへメッセージの送信
var AWS = require('aws-sdk'); var userId = "JSON.stringify({"userId": "1"}),"; //メッセージを送りたいQueueのURL var queueUrl = "hogohoge"; var params = { MessageBody: userId, QueueUrl: queueUrl, }; var sqs = new AWS.SQS(); sqs.sendMessage(params1, function(err, data) { if (err) { console.log(err, err.stack); } else { console.log(data); } });
メッセージを送信するメソッドにはsendMessage
のほかにもsendMessageBatch
が存在します。
これは、10個以内であればメッセージをまとめて送信できるみたいです。
2. 任意のQueueからメッセージを受信
var AWS = require('aws-sdk'); var sqs = new AWS.SQS(); const params = { QueueUrl: QUEUE_URL, MaxNumberOfMessages: 10, VisibilityTimeout: 10 }; SQS.receiveMessage(params, (err, data) => { if (err) return callback(err); const promises = data.Messages.map((message) => { console.log(message); }); });