AWS SDK for JavaScript v2 の近日発表
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon SQS でのメッセージの送受信
この Node.js コード例は以下を示しています。
キューでメッセージを送信する方法。
キューでメッセージを受信する方法。
キューでメッセージを削除する方法。
シナリオ
この例では、一連の Node.js モジュールはメッセージの送受信に使用されます。Node.js モジュールは SDK for JavaScript を使用して、AWS.SQS
クライアントクラスの以下のメソッドを使用してメッセージを送受信します。
Amazon SQS メッセージの詳細については、Amazon Simple Queue Service デベロッパーガイドの Amazon SQS キューへのメッセージの送信および Amazon SQS キューからのメッセージの受信および削除を参照してください。
前提条件タスク
この例をセットアップして実行するには、まず次のタスクを完了する必要があります。
Node.js をインストールします。Node.js をインストールする方法の詳細については、Node.js ウェブサイト
を参照してください。 ユーザーの認証情報を使用して、共有設定ファイルを作成します。共有認証情報ファイルの提供の詳細については、共有認証情報ファイルから Node.js に認証情報をロードする を参照してください。
Amazon SQS キューを作成します。キュー作成の例については、「Amazon SQS でのキューの使用」を参照してください。
キューへのメッセージ送信
sqs_sendmessage.js
というファイル名で Node.js モジュールを作成します。前に示したように SDK を必ず設定します。Amazon SQS にアクセスするには、AWS.SQS
サービスオブジェクトを作成します。メッセージに必要なパラメータを含む JSON オブジェクトを作成します。これには、このメッセージの送信先となるキューの URL を含める必要があります。この例で、メッセージは、フィクションのベストセラーの一覧にある本についての詳細 (タイトル、著者、および一覧にある週の数) を提供します。
sendMessage
メソッドを呼び出します。コールバックは、メッセージの一意の ID を返します。
// 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); } });
この例を実行するには、コマンドラインに次のように入力します。
node sqs_sendmessage.js
このサンプルコードは、このGitHub
キューからのメッセージの受信および削除
sqs_receivemessage.js
というファイル名で Node.js モジュールを作成します。前に示したように SDK を必ず設定します。Amazon SQS にアクセスするには、AWS.SQS
サービスオブジェクトを作成します。メッセージに必要なパラメータを含む JSON オブジェクトを作成します。これには、メッセージを受信するキューの URL を含める必要があります。この例では、パラメータはすべてのメッセージ属性の受信、および 10 以下のメッセージの受信を指定します。
receiveMessage
メソッドを呼び出します。コールバックは Message
オブジェクトの配列を返します。その配列から、そのメッセージを後で削除するために使用する各メッセージについての ReceiptHandle
を取得できます。メッセージの削除に必要なパラメータを含む別の JSON オブジェクトを作成します。これは、キューの URL と ReceiptHandle
の値です。受信したメッセージを削除するには、deleteMessage
メソッドを呼び出します。
// 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); } }); } });
この例を実行するには、コマンドラインに次のように入力します。
node sqs_receivemessage.js
このサンプルコードは、このGitHub